J'ai cette requête:Alias de table jointe à SQLProjection
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"))
Est-il possible que je peux obtenir l'alias SQL pour « immobilier » comme l'écriture {} succession dans la chaîne SQL? {estate} 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 les documents, cela devrait être possible. J'utilise NH2.0.1.
/Asger
Salut Maarten, merci beaucoup pour votre réponse. Le getColumnAlias est exactement ce que je cherche ... mais comme vous le dites, il ne semble pas exister dans NH. Mais pour ce qui est de votre suggestion, vous avez raison, j'ai saisi la partie de la requête d'une autre partie de mon code, où je vais utiliser une clause HAVING sur la valeur projetée, donc ça a du sens - mais dans ce cas ce n'est pas le cas. Merci d'avoir fait remarquer cela! – asgerhallas