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对象的标准。但是当我运行时抛出以下异常。
{“无法解析属性:Action.class of:Classes.MemberAction”}
类MemberAction包含:
public class MemberAction {
Int64 Id;
Member member;
Action action;
IDictionary<string,string> Attributes;
etc.....
}
并且Action类是其他4个类的基础
答案 0 :(得分:0)
.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"))
Criteria查询处理隐式别名。他们不会自动取消引用关系。
添加的行在投影属性“Action”上创建一个名为“Action”的别名(第二个参数,可能是您想要命名的任何内容)。
现在,下一个语句引用“Action”别名引用的实体的class
伪属性。