首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

根据 List(Of Guid) 里的项来查找多个记录的 Linq 写法,该怎么处理

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

根据 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 

热点排行