如何过滤嵌套在对象中的对象?
问题描述:
ICriteria iCriteria = DataAccessHelper.GetSession().CreateCriteria(typeof(T))
.Add(Expression.Lt("Id", InitialIndex))
.Add(Expression.Eq("Member", member))
.Add(Expression.Eq("Action.class", typeof(U)))
.SetMaxResults(MaxResult)
.AddOrder(Order.Desc("Id"));
我基本上想创建一个标准,可以通过他的实现类来过滤操作对象。但是当我运行时会抛出以下异常。如何过滤嵌套在对象中的对象?
{ “无法解析属性:Action.class的:Classes.MemberAction”}
类MemberAction包含:
public class MemberAction {
Int64 Id;
Member member;
Action action;
IDictionary<string,string> Attributes;
etc.....
}
和集体诉讼的其他4类
基地
答
.Add(Expression.Lt("Id", InitialIndex))
.Add(Expression.Eq("Member", member))
.CreateAlias("Action", "Action") //here's the magic
.Add(Expression.Eq("Action.class", typeof(U)))
.SetMaxResults(MaxResult)
.AddOrder(Order.Desc("Id"))
标准查询对隐式别名起作用。他们不会自动取消关系。
添加的行会在投影属性“Action”中创建一个名为“Action”的别名(第二个参数,可以是任何您想命名它的名称)。
下一条语句现在引用由012行“”别名引用的实体的伪属性class
。
谢谢你,这个作品很棒 – firematta 2010-07-28 14:15:09