以前这可以工作:
max-age
现在我需要为“用户”对象添加“包含”
var query = _context.Favourites
.Where(o => o.User.UserId == user.UserId);
是吗? var query = _context.Favourites
.Include(o => o.User)
.Where(o => o.User.UserId == user.UserId);
中的内容是否已更改?
如果不包含它,我将得到一个不友好的异常。
答案 0 :(得分:0)
否则,您可以将User
属性设为virtual
,以便启用延迟加载。但是Include()
是更可取的,因为它将查询数据库一次以检索所有必需的数据。
答案 1 :(得分:0)
Entity Framework Core允许您使用模型中的导航属性来加载相关的实体。共有三种常见的O / RM模式用于加载相关数据。
急切加载是指作为初始查询的一部分从数据库中加载相关数据。
显式加载是指以后从数据库中显式加载相关数据。
延迟加载是指在访问导航属性时从数据库透明地加载相关数据。
何时使用紧急加载
何时使用延迟加载
几乎在一对多关系的每个“集合方”。喜欢 用户或类别产品的收藏夹。
您完全知道您将不需要即时的财产。
注意:延迟加载可能存在处置问题。
有关在EF Core中加载相关数据的更多详细信息,您可以参考the official documentation