Frage

Ich habe diese Abfrage:

criteria = session.CreateCriteria(typeof (Building))
    .CreateAlias("Estate", "estate")
    .SetProjection(Projections.ProjectionList()
                       .Add(Property.ForName("Name"), "BuildingName")
                       .Add(Property.ForName("estate.Name"), "EstateName")
                       .Add(Projections.SqlProjection(
                                "(estate1_.BBRMunicipalityNumber + '-' + estate1_.BBREstateNumber + '-' + {alias}.BBRBuildingNumber)" + " as BBRNumber",
                                new[] { "BBRNumber" },
                                new[] { NHibernateUtil.String }),
                            "BBRNumber"))

Gibt es eine Möglichkeit, ich kann den SQL alias für "estate", wie schreiben {estate} in die SQL-Zeichenfolge?{estate} funktioniert nicht.Nun landete ich hardcoding der alias in der SQL-Zeichenfolge, aber das scheint nicht sehr solide.

Wenn ich sehe, dass die Dokumente korrekt sollte dies möglich sein.Ich bin mit NH2.0.1.

/Asger

War es hilfreich?

Lösung

Nicht eine direkte Antwort auf deine Frage, aber:Warum nicht, Fragen Sie die drei Werte separat, und tun die Verkettung in Ihrem code anstelle der Verwendung der Datenbank?

Um deine Frage zu beantworten:In Hibernate v3 (java, tut mir Leid) es ist ein getColumnAlias Methode der Projektion interface.Ich bin nicht in der Lage zu finden Ihr Gegenstück in NHibernate.

Cheers

Andere Tipps

Sie können die Verwendung von {alias} - es verweist der alias der aktuellen Projektion.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top