c# - Entity Framework 核心 1.0.0 : Eager loading with Where-clause

标签 c# entity-framework-core npgsql

当我使用 EntityFramework 7.0.0-rc1 时,我写了这样的东西:

context.MyEntity
.Include(e=>e.MySubEntities)
.Where(e=>e.MySubEntities.Contains(value))
.Where(e=>e.Status==1)
.ToList();

在 EFCore 1.0.0 中,相同的代码会引发异常。我想 Include 在第一个 Where 运行时还没有加载数据。所以现在我需要首先用所有相关数据实例化我的集合,然后查询它。 以前的方法似乎已经过优化,因为只有数据库查询(不是吗?)。我现在如何做同样的事情?

附言我正在使用 Npgsql.EntityFrameworkCore.PostgreSQL 1.0.0

最佳答案

您不能像那样在 EF Core 中使用 Contains,因为无法在表达式树中转换该值:

就这样使用它:

 var tmp = myConext.MyEntity
          .Include(e=>e.MySubEntities)
          .Where(x => x.MySubEntities.Select(id=>id.MySubEntitiesId).Contains(value.MySubEntitiesId))
          .Where(e=>e.Status==1)
          .ToList();

关于c# - Entity Framework 核心 1.0.0 : Eager loading with Where-clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38200123/

相关文章:

.net - Npgsql Minimum Pool Size 似乎没有被考虑在内

postgresql - 如何使用 ssl 选项保护 npgsql 连接

c# - 如何拥有 RavenDB Web UI 的管理员权限

C# - 麦克风噪音检测

c# - 在 Identity 2.0 中扩展 IdentityUserRole

c# - 带有 azure 函数和 Web api 的 EF Core 连接字符串设置

c# - .NET Core 2.1 Identity 获取所有用户及其相关角色

entity-framework-core - EF Core返回空关系,直到直接访问

c# - PostgreSQL:在有外键的多表中插入大量

c# - 反序列化 SOAP 消息的详细信息