【问题标题】:How do IN () statements work in NHibernate? (Using Criteria)IN () 语句如何在 NHibernate 中工作? (使用标准)
【发布时间】:2008-12-30 22:10:43
【问题描述】:

我正在尝试使用 NHibernate 创建以下等效项。我已经使用 fluent 完成了所有映射,我可以很好地完成基本查询,但我不知道如何做到这一点。

-**Product Table**
Reference
Title
Subjects (Many to Many relationship)
Price

-**Subject table**
SubjectID
Name

-**SubjectToProductMapping Table**
Reference
SubjectID

现在我需要这样做:

SELECT * 
FROM Product
WHERE Reference IN 
    (Select Reference FROM SubjectToProductMapping WHERE SubjectID = @SubjectID)

请记住 Product 表已经为帖子简化了很多,我更喜欢使用 IN 语句来简化查询的其余部分。理想情况下,我希望使用 Criteria 创建查询,因为我将使用 Criteria 对结果进行分页。

提前致谢

【问题讨论】:

    标签: c# .net nhibernate criteria


    【解决方案1】:

    当连接就足够时,为什么还要使用 in?如果您的 Products 类有一个映射的主题集合,那么您可以使用这个 Criteria

    IList<Product> results = session.CreateCriteria(typeof(Product))
                                    .CreateCriteria("Subjects", JoinType.Join)
                                    .Add(Resitctions.Eq(Projections.ID, subjectID))
                                    .List<Product>();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 2010-09-08
      • 2023-02-16
      • 1970-01-01
      • 2020-06-20
      • 2016-10-16
      • 2012-07-03
      相关资源
      最近更新 更多