ICriteria - 流畅的 nhibernate 不产生内部连接

发布于 2024-12-02 01:15:59 字数 343 浏览 1 评论 0原文

我正在开发一个小型 Web 应用程序,使用 nhibnerate 作为我的 DAL。 我必须使用简单的 ICriteria 来选择我想要选择的课程。

这是我的代码示例:

var criteria = CurrentSession.CreateCriteria(typeof(School))
    .CreateAlias("students", "s")
    .Add(Restrictions.Eq("s.Name", "Charley"));

由于某种原因,该代码生成了一个没有内部联接的查询。我只选择了一张桌子。

我该如何解决这个问题?

谢谢

I am developing a small web application, using nhibnerate as my DAL.
I have to classes that I wish to select from, using a simple ICriteria.

This is a sample of my code:

var criteria = CurrentSession.CreateCriteria(typeof(School))
    .CreateAlias("students", "s")
    .Add(Restrictions.Eq("s.Name", "Charley"));

From some reason this code generated a query with no inner join. I have only one table selected from.

How can I solve this?

Thank you

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

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

发布评论

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

评论(1

少女情怀诗 2024-12-09 01:15:59

Oenning 的评论可能是答案,但您还应该在 CreateAlias 中指定联接类型:

var criteria = CurrentSession.CreateCriteria(typeof(School))
.CreateAlias("students", "s", JoinType.InnerJoin)
.Add(Restrictions.Eq("s.Name", "Charley"));

Oenning's comment may be the answer but you should also specify the join type in CreateAlias:

var criteria = CurrentSession.CreateCriteria(typeof(School))
.CreateAlias("students", "s", JoinType.InnerJoin)
.Add(Restrictions.Eq("s.Name", "Charley"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文