C# 子对象上的NHibernate OrderBy投影
我有两个实体C# 子对象上的NHibernate OrderBy投影,c#,nhibernate,sql-order-by,queryover,nhibernate-projections,C#,Nhibernate,Sql Order By,Queryover,Nhibernate Projections,我有两个实体organizationmember和User organizationmember具有类型为User的名为User的对象属性 我正在尝试编写一个NHibernate查询,该查询将由用户执行不区分大小写的查询。电子邮件属性。。。(用户在各种情况下向系统中键入电子邮件) 我已经看到,您可以使用SQLFunction投影来基本上大写DB中的所有内容,并以此排序。但我无法将其应用于子对象。这是我到目前为止所拥有的 var query = Session.QueryOver<Organ
organizationmember
和User
organizationmember
具有类型为User
的名为User
的对象属性
我正在尝试编写一个NHibernate查询,该查询将由用户执行不区分大小写的查询。电子邮件属性。。。(用户在各种情况下向系统中键入电子邮件)
我已经看到,您可以使用SQLFunction投影来基本上大写DB中的所有内容,并以此排序。但我无法将其应用于子对象。这是我到目前为止所拥有的
var query = Session.QueryOver<OrganisationMembership>();
query.RootCriteria.SetFetchMode("User", FetchMode.Eager);
var projection = Projections.SqlFunction("UPPER", NHibernateUtil.String, Projections.Property("Email"));
query.OrderBy(projection).Asc();
有什么想法吗?你必须:
User user = null;
query.JoinAlias(p => p.User, () => user);
相当于
query.JoinAlias(p => p.User, () => user, JoinType.InnerJoin);
然后
projection = Projections.SqlFunction("UPPER",
NHibernateUtil.String,
Projections.Property(() => user.Email));
在NHibernate中,您始终必须显式地进行联接
。没有隐式联接。您必须:
User user = null;
query.JoinAlias(p => p.User, () => user);
相当于
query.JoinAlias(p => p.User, () => user, JoinType.InnerJoin);
然后
projection = Projections.SqlFunction("UPPER",
NHibernateUtil.String,
Projections.Property(() => user.Email));
在NHibernate中,您始终必须显式地进行联接
。没有隐式联接。谢谢。。。我试试看。谢谢。。。我试试看。