读书人

根据 List(Of Guid) 里的项来查找多个

发布时间: 2012-02-20 21:18:24 作者: rapoo

根据 List(Of Guid) 里的项来查找多个记录的 Linq 写法
数据里面的一个表,有 ID 字段,类型为 GUID。

程序里面传入一个包含多个 ID 的 List(Of Guid),要查询出来这些 ID 的记录。

刚开始写:

VB.NET code
    Public Shared Function Query(ids As List(Of Guid)) As DemoItem        DemoTableEntities.Where(Function(x) ids.IndexOf(x.ID) >= 0).ToList()    End Function


提示 IndexOf 无法转换。

改为:
VB.NET code
    Public Shared Function Query(ids As List(Of Guid)) As DemoItem        DemoTableEntities.Where("it.ID = {0} Or it.ID = {1} Or it.ID = {2} ... ", ids.ToArray).ToList()    End Function    '其中 it.ID = {0} Or it.ID = {1} Or it.ID = {2} ... 这句是 ids 循环动态生成的字符串


提示 ids 无法转换。但如果查询一个:
VB.NET code
    Public Shared Function Query(ids As List(Of Guid)) As DemoItem        DemoTableEntities.Where("it.ID = {0}", ids(0)).ToList()    End Function


就没问题。





像此类问题大家是如何解决的?


[解决办法]
VB.NET code
 Public Shared Function Query(ids As List(Of Guid)) As DemoItem        DemoTableEntities.Where(Function(x) ids.Contains(x.ID)).ToList()    End Function 

读书人网 >.NET

热点推荐