【问题标题】:Using QueryOver how do I write a Where statement against an "is in"使用 QueryOver 如何针对“在”中编写 Where 语句
【发布时间】:2012-05-14 12:58:11
【问题描述】:

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

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

但现在我想将字段与值列表进行匹配,因此在 SQL 中类似于“Where x is in ():”

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

请问我该怎么做?

谢谢

【问题讨论】:

    标签: c# nhibernate where-clause queryover


    【解决方案1】:

    你可以使用 contains 来做一个 in:

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

    【讨论】:

      【解决方案2】:

      您已经使用过 QueryOver 以及另一种方法:

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

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

      【讨论】:

      • 这真的很有帮助 Anton - 我以前从未见过。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2013-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多