c# - 简化 Linq 表达式

标签 c# sql linq entity-framework

我在使用 Entity Framework 5 的应用程序中使用此 Linq 表达式

var managers =
    UnitOfWork.UserRepository.Get(
      u => userAccounts.All(ua => u.Permissions.Any(uap => 
      ((uap.AccountId == ua || uap.PermissionId == 1) && uap.Config == "SET")))
      && (user.IsGenericUser || u.StageId== user.StageId));

在这里useraccountsList<int>对象。

但是这是抛出异常

Some part of your SQL statement is nested too deeply. Rewrite the query or break it up into smaller queries.

我怎样才能简化这个表达式来避免这样的错误。

最佳答案

您可以编写 SQL 过程/ View 来完成此操作。 EF 鼓励这种策略,但是 (imo) 通常性能较差。然后可以通过您的上下文执行过程/ View 。

关于c# - 简化 Linq 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044467/

相关文章:

c# - 如何使用 Monotouch 遍历 CGPDFDictionary?

c# - 使用 Stripe 每月付款

c# - Linq选择没有 child 的父记录

vb.net - LINQ-to-List 和 IEnumerable 问题

c# - 单元测试 async void 事件处理程序

mysql - 如何使用mysql获取最近两个月没有访问过的用户记录

mysql - SQL - 查找具有最新日期的人

SQL 自定义搜索特殊字符

xml - LINQ to XML 至少一个对象必须实现 IComparable

c# - 对象数组上的 Linq 外连接