使用 nHibernate 查询对象层次结构时出现问题

发布于 2024-10-29 01:10:57 字数 650 浏览 0 评论 0原文

问题:

我有对象层次结构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>();

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

基本上,我试图获取与 C 中的名称匹配的所有 A。那么我该如何编写一个可以做到这一点的查询呢?

谢谢,

凯尔

Problem:

I have the object hierarchy A => B => C - that's A references B and B references C. C contains the Name property I'm trying to query on. I am trying to call the following code to get the list of A's

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

I receive the error "Could not resolve property: B.C.Name of: A". All of my mappings look good whereby B contains a C property and C contains a Name property. I've also verified the mappings are correct because I'm running other queries that successfully retrieve the requested data.

Basically, I'm trying to get all the A's that match the name in C. So how do I write a query that can do this?

Thanks,

Kyle

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

财迷小姐 2024-11-05 01:10:57

使用 QueryOver:

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

您也可以使用别名来完成此操作。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文