使用QueryOver如何针对“is in”编写Where语句

时间:2012-05-14 12:58:11

标签: c# nhibernate where-clause queryover

使用QueryOver时,我通常会编写一个Where子句,其中字段与值完全匹配:

var subset = _session.QueryOver<ProviderOrganisation>()
.Where(x => x.Type == "Hospital")
.List<ProviderOrganisation>();

但是现在我想将字段与值列表进行匹配,所以在SQL中就像“其中x在()中的那样:”

var subset = _session.QueryOver<ProviderOrganisation>()
.Where(x => x.Code is In (ListOfSubsetCodes))
.List<ProviderOrganisation>();

我该怎么做?

由于

2 个答案:

答案 0 :(得分:4)

您可以使用contains来执行:

.Where(x => ListOfSubsetCodes.Contains (x.Code)) 

答案 1 :(得分:4)

您已经使用过QueryOver,另一种方法是:

.WhereRestrictionOn(x => x.Code).IsIn(ListOfSubsetCodes)

我认为x => ListOfSubsetCodes.Contains()适用于LINQ,但不适用于QueryOver。