C# 为什么这个linq SQL查询的错误嵌套太深? //注意serialNumbers是一个列表
如果C# 为什么这个linq SQL查询的错误嵌套太深? //注意serialNumbers是一个列表,c#,linq,c#-3.0,C#,Linq,C# 3.0,如果serialNumbers是一个本地列表,那么如果DB.InventoryItems是一个可查询的数据库表,该列表无论如何都不起作用。不能将数据库表与本地集合联接。你不应该那样写 你应该这样写: // Note serialNumbers is a List<string var ids = (from i in DB.InventoryItems join s in serialNumbers on i.SerialNumber equals s
serialNumbers
是一个本地列表,那么如果DB.InventoryItems
是一个可查询的数据库表,该列表无论如何都不起作用。不能将数据库表与本地集合联接。你不应该那样写
你应该这样写:
// Note serialNumbers is a List<string
var ids = (from i in DB.InventoryItems
join s in serialNumbers on i.SerialNumber equals s
select i.id);
return string.Join(",", ids);
如果你得到了关于太多项目的错误,这是你的数据库的一个限制,所以如果你想使用这个数字列表,你必须把查询分成更小的部分。否则,您将不得不承担在传统foreach循环中进行本地过滤或转换为
IEnumerable
的成本,错误是什么。。。也许把你的查询放在一个列表中,然后进行字符串连接。
var ids =
from i in DB.InventoryItems
where serialNumbers.Contains(i.SerialNumber)
select i.id;