我在使用 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));
在这里useraccounts
是 List<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/