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

C# 使用QueryOver如何针对“is in”编写Where语句,c#,nhibernate,where-clause,queryover,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<Pr

使用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>();
请问我该怎么做


谢谢

您可以使用contains在以下位置执行操作:

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

您可以使用“包含”来执行以下操作:

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

您使用了QueryOver和另一种方法:

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

我认为x=>ListOfSubsetCodes.Contains对LINQ很有效,但对QueryOver不起作用。

您使用了QueryOver,还有另一种方法:

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

我认为x=>ListOfSubsetCodes.Contains对于LINQ很有效,但对于QueryOver则不行。

这对Anton很有帮助,我以前从未见过这种情况。谢谢这真的很有帮助,安东-我以前从没见过。谢谢