题
我有这样的查询:
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"))
有没有一种方法,我可以得到“遗产”的SQL别名像SQL字符串写入{}地产? {}地产不起作用。现在,我结束了硬编码在SQL字符串的别名,但似乎并不很扎实。
如果我理解文档正确这应该是可能的。我使用NH2.0.1。
/导演Asger
解决方案
不是直接回答你的问题,但是: 你为什么不单独查询三个值,做在你的代码中的连接而不是使用数据库为的?
要回答你的问题:在Hibernate V3(java的,抱歉)存在的一个getColumnAlias 投影接口上的方法。我无法找到其对应的NHibernate
干杯
其他提示
可以使用{别名} - 它将引用当前投影的别名
。不隶属于 StackOverflow