Alias ??da tabela associada em SQLProjection
-
20-08-2019 - |
Pergunta
Eu tenho esta consulta:
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 uma maneira que eu possa obter o alias SQL para "propriedade" como escrever {propriedade} na cadeia de SQL? {Propriedade} não funciona. Agora acabei hardcoding o alias na cadeia de SQL, mas que não parece muito sólido.
Se eu entender os documentos corretamente isso deve ser possível. Estou usando NH2.0.1.
/ Asger
Solução
Não é uma resposta directa à sua pergunta, mas: Por que não consultar os três valores separadamente e fazer a concatenação em seu código em vez de usar o banco de dados para isso?
Para responder à sua pergunta: Em Hibernate v3 (java, sorry) há um getColumnAlias ?? método na interface de projecção. Eu não sou capaz de encontrar o seu homólogo em NHibernate.
Felicidades
Outras dicas
Você pode usar {apelido} -. Fará referência ao apelido da actual projecção