1

问题:

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

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

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

基本上,我正在尝试获取A's与名称匹配的所有C. 那么如何编写一个可以做到这一点的查询呢?

谢谢,

凯尔

4

1 回答 1

2

Using QueryOver:

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

You could also do it with aliases.

于 2011-03-31T22:36:52.177 回答