为什么这个 linq SQL 查询的错误嵌套太深?
Why am I getting error nested too deeply for this linq SQL query?
// 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);
serialNumbers
变量是一个字符串类型的列表。此 serialNumbers
列表
中包含大约 100 个项目后我收到错误消息
如果 serialNumbers
是一个本地列表,如果 DB.InventoryItems
是一个可查询的数据库 table,那无论如何都行不通。您不能将数据库 table 与本地集合连接起来。你不应该那样写。
你应该写成:
var ids =
from i in DB.InventoryItems
where serialNumbers.Contains(i.SerialNumber)
select i.id;
如果您随后收到关于太多项目的错误,那是您的数据库的限制,因此如果您想使用该数字列表,您必须将该查询分成更小的部分。否则,您将不得不承担在传统的 foreach 循环中进行本地过滤或强制转换为 IEnumerable
.
的成本
// 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);
serialNumbers
变量是一个字符串类型的列表。此 serialNumbers
列表
如果 serialNumbers
是一个本地列表,如果 DB.InventoryItems
是一个可查询的数据库 table,那无论如何都行不通。您不能将数据库 table 与本地集合连接起来。你不应该那样写。
你应该写成:
var ids =
from i in DB.InventoryItems
where serialNumbers.Contains(i.SerialNumber)
select i.id;
如果您随后收到关于太多项目的错误,那是您的数据库的限制,因此如果您想使用该数字列表,您必须将该查询分成更小的部分。否则,您将不得不承担在传统的 foreach 循环中进行本地过滤或强制转换为 IEnumerable
.