简化Linq表达

时间:2014-01-10 12:30:30

标签: c# sql linq entity-framework

我在我的应用程序中使用此Linq Expression,它正在使用Entity Framework 5

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>个对象。

但这是抛出异常

  

SQL语句的某些部分嵌套太深。重写查询或将其分解为较小的查询。

如何简化此表达式以避免此类错误。

2 个答案:

答案 0 :(得分:0)

您可以编写SQL过程/视图来完成此任务。 EF鼓励这种策略然而(imo)通常性能较差。然后可以通过您的上下文执行过程/视图。

答案 1 :(得分:0)