嗨,我正在构建一个 MVC 4 报告,并使用 EF5。数据库在 SQL 2005 上。
The report has a large amount of long string filters, when there are a lot of them selected, I got this error:"Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries."
选择过滤器并返回一个列表,在我使用的 LINQ 查询中:
DataContext.Entity.Where(list.Contains(column));
return IQueryable<Entity>;
我猜这是超过限制的 LINQ 生成的 SQL 查询,我不知道限制是什么。
有什么办法可以控制这个限制吗?或者请指出我的猜测是否错误。
非常感谢。
感谢@AdrianFaciu 提供的以下链接,它真的很有帮助,我认为这是类似的问题。(我猜我的每个字符串过滤器的长度都太长了,而且数量很多。) 使用 Contains() 时达到 2100 参数限制(SQL Server)
我已经阅读了一些解决方法,但仍在寻找合适的解决方案,而不是通过生成字符串查询。至少现在看来,我必须逐步加载数据以减少查询的长度。