我有这样的查询:

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

干杯

其他提示

可以使用{别名} - 它将引用当前投影的别名

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top