sql-server - Entity Framework Plus - 使用 InlcudeFilter 进行多级失败
问题描述
情况
我有一个模型“ModelA”,我尝试从数据库中加载所有属性(几个级别)。为了避免加载任何不必要的属性,我想使用 IncludeFilter、Select 和 Where。
我当前的查询如下所示:
var query = context.Model_A
.IncludeFilter(a => a.Model_A1)
.IncludeFilter(a => a.Model_A2)
.IncludeFilter(a => a.Model_A3.Select(a3 => a3.Model_B1))
.AsQueryable();
if (filter == condition)
{
query = query.IncludeFilter(a => a.Model_A3
.Select(a3 => a3.Model_B2.Model_C1
.Where(c1 => c1.Property_1 == condition)
.Select(c1 => c1.Model_D1)
));
}
模型结构如下所示:
public class Model_A
{
public Model_A1 Model_A1
public int Model_A1_Id
public Model_A2 Model_A2
public int Model_A2_Id
public ICollection<Model_A3> Model_A3
public Model_A() {
Model_A3 = new Collection<Model_A3>();
}
}
public class Model_A3
{
public Model_B1 Model_B1
public int Model_B1_Id
public Model_A Model_A
public int Model_A_Id
public Model_B2 Model_B2
public int Model_B2_Id
}
public class Model_B2
{
public ICollection<Model_C1> Model_C1
public Model_B2 {
Model_C1 = new Collection<Model_C1>();
}
}
public class Model_C1
{
public Model_B2 Model_B2
public int Model_B2_Id
public Model_D1 Model_D1
public int Model_D1_Id
}
问题
尝试此查询我收到以下错误:
“NavigationExpandingExpressionVisitor”处理 LINQ 表达式“x => x”失败。这可能表示 EF Core 中的错误或限制。
这是复杂的还是我在任何地方都有问题?有更好的理由来处理这种情况吗?
任何帮助表示赞赏。
解决方案
推荐阅读
- firebase - Firestore 安全规则,限制子/字段
- javascript - 在对象创建中使用对象值
- mongodb - 创建包含 find 子句的 MongoDb 视图
- kubernetes - 如何在 kubernetes go client pod 规范中提供资源限制?
- sql - 每月 Oracle Sql 组平均值
- web-applications - 试用完成后如何创建支付页面 - 开发者模式
- python - 如何使用 python 2.7 从 url 下载所有图像 - 问题
- python - 如何在 python 中下载登录表单后面网页的大媒体链接?
- spring-mvc - restTemplate.postforEntity(url, request,ResponseObj.class) 的测试请求正文
- python - map() 输出将字符串添加到字符串数组 Python