我有以下代码:
Session.CreateCriteria<Foo>("foo")
.CreateAlias("foo.Bar", "bar")
.SetProjections(Projections.SqlProjection("bar.FirstName + ' ' + bar.LastName));
问题在于SqlProjection中条形表的别名。
Hibernate文档说“字符串{alias}将被根实体”的别名替换,但是没有提供任何提示如何访问非root用户的别名实体。
这可能吗?
答案 0 :(得分:1)
我有一个类似的问题。具体来说,我想创建一个投影,它是几个字段的串联。我没有使用SqlProjection,而是使用了:
Projections.SqlFunction("concat",
NHibernateUtil.String,
Projections.Property("Field"),
Projections.Constant(" "),
Projections.Property("Field2",
Projections.Constant(" "),
Projections.Property("Field3")
);
这是基于NHibernate单元测试:UsingSqlFunctions_Concat_WithCast。这适用于SQL Server,尽管“concat”不是本机函数。
答案 1 :(得分:0)
试试这个:
Session.CreateCriteria<Foo>()
.CreateCriteria("Bar")
.SetProjections(Projections.SqlProjection("FirstName + ' ' + LastName)");