如何使用thenInclude查询EntityFramework.Core 3.0 DbContext

时间:2019-12-11 17:10:15

标签: c# entity-framework-core

我一定缺少简单的东西。我创建了一个项目来保存数据模型。我添加了以下软件包:

  • Microsoft.EntifyFrameworkCore(3.1.0)
  • Microsoft.EntitiFrameworkCore.SqlServer(3.1.0)
  • Microsoft.EntityFrameworkCore.Tools(3.1.0)

我在Package Manager控制台中使用以下命令创建了模型:

Scaffold-DbContext "server=MyServer;database=MyDB;Integrated Security=False;User ID=MyUserId;Password=myPassword;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

现在,我有一个名为MyDBContext的上下文。但是,我似乎没有编写我期望的LINQ查询所需的方法。我希望能够写这样的东西:

var pt = context.Patient.Where(p => p.PatientId == 1234)
                        .Include(pa => pa.PatientAddress)
                        .ThenInclude(....)

ThenInclude不可用。我想念什么?

另一方面,我期望DbSet可以是多元的。为什么这没有发生?

1 个答案:

答案 0 :(得分:0)

修改

首先,您必须在班级中包括扩展名:

using Microsoft.EntityFrameworkCore;

原始答案

它存在,但是:

  

代码完成仍然不提供ThenInclude中的属性。   例如,在文档示例中“作者”不是一个选项:

var blogs = context.Blogs
       .Include(blog => blog.Posts)
           .ThenInclude(post => post.Author)
       .ToList();
     

手动输入时,编译时不会出现错误或下划线并运行   正确。

请参见https://github.com/dotnet/roslyn/issues/8237#issuecomment-562997436