NHibernate子子类属性查询

时间:2010-12-20 12:42:31

标签: nhibernate hibernate

我有一个班级A,其中包含一个班级B,其中包含一个属性为C的班级P。所以这样的事情不应该起作用吗?:

var query = Session.CreateCriteria(typeof(A));
query.Add(Expression.InsensitiveLike(
              Projections.Cast(NHibernateUtil.String,
                               Projections.Property("B.C.P")),
              "%bla%", MatchMode.Exact));

我收到could not resolve property例外。

我知道我可以使用CreateAlias等,我也尝试过无效。目前我选择了“隐式关联加入”。

非常感谢任何反馈。非常感谢。

克里斯

1 个答案:

答案 0 :(得分:2)

CreateAlias(或CreateCriteria)是唯一的方法。

var query = Session.CreateCriteria<A>()
                   .CreateAlias("B", "B")
                   .CreateAlias("B.C", "C");
query.Add(Expression.InsensitiveLike(
              Projections.Cast(NHibernateUtil.String,
                               Projections.Property("C.P")),
              "%bla%", MatchMode.Exact));