当前位置: 首页 > 编程语言 > C#

NHibernateCriteria列表属性的任何元素为真Share

时间:2023-04-10 23:39:37 C#

NHibernateCriteria列表属性的任何元素为真该查询基于一个Order对象,该对象具有一个OrderItems列表,然后每个OrderItem都有一个名为FinalDeliveryIndi??cator的bool属性。在我的Criteria查询中,我需要添加一个条件,即我希望所有订单至少有一个FinalDeliveryIndi??catorbool设置为true的OrderItems。当前查询是:varsearch=NHibernateSession.CreateCriteria(typeof(Order)).CreateAlias("Contract","C",JoinType.InnerJoin).CreateAlias("C.Supplier","S",JoinType.InnerJoin)。添加(Restrictions.Eq("Buyer.Id",companyId)).Add(Restrictions.Eq("IsDeleted",false)).Add(Restrictions.Eq("IsActiveVersion",true)).SetFirstResult(paging.PageIndexSQL).SetMaxResults(paging.PageSize).AddOrder(SortOrder.Desc("Id"));现在我需要添加我告诉你的条件。这个查询在这个应用程序的很多地方都用到了,所以我不能切换到QueryOver或其他类型的查询,因为有崩溃的风险。我们需要的是Sub-SELECT。这可以通过子查询来实现。15.8。分离查询和子查询我们可以使用DetachedCriteria定义子查询:这将作为此SQL片段结束:(SELECTOrderIdFROMOrderItemsWHEREFinalDeliveryIndi??cator=1)我们可以在主查询中使用此子查询作为WHERE的一部分...search.Add(Subqueries.PropertyIn("Id",subquery))。..里面会在WHERE子句中加入这个限制:以上是C#学习教程:NHibernateCriteria列表属性的任意元素为true的所有内容分享,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注—SELECT...FROMOrderthis_JOIN...WHERE...ANDthis_.OrderIdISIN//上面的子查询(SELECTOrderIdFROMOrderItemsWHEREFinalDeliveryIndi??cator=1)本文收录来自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢