我从 EF 5 中得到以下异常: SQL 语句的某些部分嵌套得太深。重写查询或将其分解为更小的查询。
这是我的查询:
String username = “test”;
IEnumerable<Int32> roles;
IEnumerable<Int32> applications;
cnx.Users.Where ( it =>
( userName != null ? it.name = = userName : true ) &&
( !roles.Any () || roles.Contains ( it.role_id ) ) &&
( ! applications.Any () || applications.Contains ( it.application_id ) ) )
.Count ();
用户是一个简单的表。角色和应用程序都是 IEnumerable 类型,可以为空。
如何更改我的查询,使其在 EF 5 (.Net 4.0) 中有效?