我在我的应用程序中使用此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));
此处useraccounts
是List<int>
个对象。
但这是抛出异常
SQL语句的某些部分嵌套太深。重写查询或将其分解为较小的查询。
如何简化此表达式以避免此类错误。
答案 0 :(得分:0)
您可以编写SQL过程/视图来完成此任务。 EF鼓励这种策略然而(imo)通常性能较差。然后可以通过您的上下文执行过程/视图。
答案 1 :(得分:0)