通过Criteria API在NHibernate 2.1.1.2中使用join

本文关键字:join Criteria NHibernate 通过 API | 更新日期: 2023-09-27 17:49:30

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

- AccountDailyInfo中被称为AccountEventList的accounteevent列表

-在AccountEvent

中添加AccountDailyInfo类型的属性

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

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

但是这里我们不能基于AccountEvent表中的值应用筛选标准。类似地,在一个总体查询中,我们至少在4到5个表上使用join。最后,我们将根据所有不同表中的值过滤出结果。

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

通过Criteria API在NHibernate 2.1.1.2中使用join

只需使用您提供的别名对连接进行过滤。这里是外键你可以输入

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