c# - 如何使用 ThenInclude 查询 EntityFramework.Core 3.0 DbContext
问题描述
我一定错过了一些简单的东西。我创建了一个项目来保存数据模型。我添加了以下软件包:
- Microsoft.EntifyFrameworkCore (3.1.0)
- Microsoft.EntitiFrameworkCore.SqlServer (3.1.0)
- Microsoft.EntityFrameworkCore.Tools (3.1.0)
我在包管理器控制台中使用以下命令创建了模型:
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 是复数的。为什么这没有发生?
解决方案
编辑
首先你必须在你的类中包含扩展:
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
推荐阅读
- c - 如何使“long tv_nsec”和“time_t tv_sec”兼容?
- php - 在 laravel 中使用 DB Facade 时我无法访问模型方法
- java - 在停止当前进程的同时启动外部进程
- python - 无法通过 Shell 在 Django 中查看前端数据库
- function - Erlang 中的伪函数是什么?
- android - 处理android权限
- typescript - 如何公开 props 类型并在样式化组件中使用它
- ios - UIAlertController 标题颜色
- mongodb - mongo : 未授权管理员在管理员上执行以执行命令
- javascript - 如何从 API 的 Javascript 数组中将元素列表显示为 HTML 中的列表?