根据 List(Of Guid) 里的项来查找多个记录的 Linq 写法

Triumph 2011-07-26 11:02:01
数据里面的一个表,有 ID 字段,类型为 GUID。

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

刚开始写:

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


提示 IndexOf 无法转换。

改为:
	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 无法转换。但如果查询一个:
	Public Shared Function Query(ids As List(Of Guid)) As DemoItem
DemoTableEntities.Where("it.ID = {0}", ids(0)).ToList()
End Function


就没问题。





像此类问题大家是如何解决的?
...全文
182 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Triumph 2011-07-26
  • 打赏
  • 举报
回复
我擦!自己去撞墙!!!
之前看到有个帖子上说 Linq to sql 可以用Contains,Linq to entities 就不行,于是就相信了,自己也没试...


感谢楼上!!!
q107770540 2011-07-26
  • 打赏
  • 举报
回复
 Public Shared Function Query(ids As List(Of Guid)) As DemoItem
DemoTableEntities.Where(Function(x) ids.Contains(x.ID)).ToList()
End Function

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧