c# - Entity Framework Core:查询对象后加载相关数据
问题描述
很清楚如何查询一个实体并包含所有相关日期;例如:
using (var context = new BloggingContext())
{
var blogs = context.Blogs
.Include(blog => blog.Posts)
.Include(blog => blog.Owner)
.ToList();
}
我的问题是,给定一个缺少一些相关数据的实体,我如何要求 EF 从数据库中获取其相关数据?
例如:
var blog = context.Blogs.Find(1); // get the blog with ID=1
// how can I do something like:
blog.Include(x => x.Posts);
解决方案
正如微软所说,Find()
方法的 retun dataType 是TEntity
.
public virtual TEntity Find (params object[] keyValues);
这意味着该Find()
方法命中数据库并将获取一个TEntity
. 所以你不能在方法之后扩展你的查询Find()
。因此,如果您想在此查询中获取相关数据,您必须Include()
在访问数据库的任何方法之前调用。如下查询:
var blog = context.Blogs.Include(x => x.Posts).SingleOrDefault(x => x.Id == 1);
作为结论,您期望的方式Includ()
是不可能的,但是如果您必须@GertArnold
按照评论中的说明这样做,您可以按照这种方式进行。
祝你好运。
推荐阅读
- questdb - questdb: 插入数据时经常显示Table Busy
- javascript - 将带逗号的输入数字转换为数字以执行计算,然后用逗号返回输出?
- java - 片段内的片段不能与 ScrollView 一起使用
- javascript - 尝试编写一个显示我的我的世界服务器状态的不和谐机器人,但机器人没有响应命令,即使出现错误
- pytorch - 如何获得与系统 cuda 版本相同的 conda cuda 版本?
- flutter - Flutter垂直滑动并避免滚动Listview
- .net - 如何在不使用页脚的情况下将矩形始终保持在底部?
- kotlin - 如何使用接口限制参数数据类型
- android - 如何在 Firestore 中的所有文档中都不存在字段的 Andorid (kotlin) 中获取记录?
- python - 如何创建一个可以推动实际 NN 权重移动的损失函数?