Question

J'ai cette requête :

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"))

Existe-t-il un moyen d'obtenir l'alias SQL pour « domaine », comme en écrivant {estate} dans la chaîne SQL ?{domaine} ne fonctionne pas.Maintenant, j'ai fini par coder en dur l'alias dans la chaîne SQL, mais cela ne semble pas très solide.

Si je comprends bien la documentation, cela devrait être possible.J'utilise NH2.0.1.

/Asger

Était-ce utile?

La solution

Ce n'est pas une réponse directe à votre question, mais :Pourquoi n'interrogez-vous pas les trois valeurs séparément et effectuez la concaténation dans votre code au lieu d'utiliser la base de données pour cela ?

Pour répondre à ta question:Dans Hibernate v3 (java, désolé), il y a un getColumnAlias méthode sur l’interface Projection.Je ne parviens pas à trouver son homologue dans NHibernate.

Acclamations

Autres conseils

Vous pouvez utiliser {alias} - il fera référence à l'alias de la projection actuelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top