【问题标题】:Using Joins in NHibernate 2.1.1.2 through Criteria API通过 Criteria API 在 NHibernate 2.1.1.2 中使用连接
【发布时间】:2011-04-06 15:42:07
【问题描述】:

我是 NHibernate 的新手。我们在数据库中有两个表 AccountDailyInfo 和 AccountEvent。 AccountDailyInfo 有一个复合键。 AccountEvent 与 AccountDailyInfo 的复合键有外键关系。因此,在我们的实体类中,我们有一个

-AccountDailyInfo 中 AccountEvent 的 IList 称为 AccountEventList

-AccountEvent 中 AccountDailyInfo 类型的属性

现在我们要对这两个表执行连接。 我已经能够使用以下语句生成一个简单的连接。

_ses.CreateCriteria<AccountDailyInfo>().CreateAlias("AccountEventList", "foreignKey", NHibernate.SqlCommand.JoinType.InnerJoin)
                .List<AccountDailyInfo>()

但在这里,我们无法根据 AccountEvent 表中的值应用过滤条件。 同样,在一个整体查询中,我们至少在 4 到 5 个表上使用连接。最后,我们会根据所有不同表中的值过滤掉结果。

我请求某人向我提供一个简单和一个复杂的 Criteria 查询,了解多个连接将如何工作以及我们如何对相同的连接应用过滤。也可以连接它们之间没有映射关系的表吗?

【问题讨论】:

标签: c# nhibernate


【解决方案1】:

只需使用您提供的别名来过滤联接。所以在你的情况下它是'外键' 所以你可以做类似的事情

criteria.Add(Restrictions.Eq("foreignkey.Name", "SomeEventName"));

【讨论】:

  • 感谢您的回复。由于我的映射错误,我之前遇到了错误。如果您可以参考我在stackoverflow.com/questions/5569551/… 上的问题。那里显示的映射阻止我加入我的 ParentTable 和 ChildTable。如果您能同样帮助我,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
相关资源
最近更新 更多