我对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)标识符和常量。
这有解决方法吗?