Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么这个linq SQL查询的错误嵌套太深? //注意serialNumbers是一个列表_C#_Linq_C# 3.0 - Fatal编程技术网

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;