用nHibernate查询对象层次结构的问题

时间:2011-03-31 22:23:03

标签: nhibernate hierarchy queryover

问题:

我有对象层次结构A => B => C - A引用BB引用CC包含我正在尝试查询的Name属性。我试图调用以下代码来获取A's

的列表
ICriteria criteria = session.CreateCriteria(typeof (A)).Add(Restrictions.Eq("B.C.Name", "Test"));
return criteria.List<A>();

我收到错误“无法解析属性:B.C.Name of:A”。我的所有映射都很好看,B包含C属性,C包含Name属性。我还验证了映射是正确的,因为我正在运行其他成功检索所请求数据的查询。

基本上,我正在尝试获取与A's中的名称匹配的所有C。那么如何编写可以执行此操作的查询呢?

谢谢,

凯尔

1 个答案:

答案 0 :(得分:2)

使用QueryOver:

session.QueryOver<A>()
    .JoinQueryOver(a => a.B)
    .JoinQueryOver(b => b.C)
    .Where(c => c.Name == "Test")
    .List<A>();

您也可以使用别名。