实体框架6 - 已达到表达式服务限制

时间:2018-02-18 08:42:05

标签: c# entity-framework frameworks entity-framework-6 entity

我对EF有疑问。我有这样一个DbSet:

 public class ToolsDbContext : DbContext
 {
        public DbSet<ToolsObject> ToolsObjects { get; set; }
 }

还有很多来自ToolsObject的继承的clase。当我从ToolsObject继承了另外两个类时,我得到了这个例外:

  

System.Data.SqlClient.SqlException:内部错误:表达式   已达到服务限制。请寻找可能很复杂的   查询中的表达式,并尝试简化它们。

在这行代码中:

foreach (var myObj in _Database.ToolsObjects)
{}

但是当我以这种方式获取对象时(对于继承的类),它可以工作:

foreach (var myObj in _Database.ToolsObjects.OfType<ToolsObjectChild>())
{}

所以我认为,由于来自ToolsObject基类的许多复杂的继承类,我已经达到了可以包含在查询的单个表达式中的最大值(65535)标识符和常量。

这有解决方法吗?

0 个答案:

没有答案