我想在执行查询时包含三个模型。
这是场景。
public class Sale
{
public int Id { get; set; }
public List<SaleNote> SaleNotes { get; set; }
}
public class SaleNote
{
public int Id { get; set; }
public User User { get; set; }
}
public class User
{
public int Id { get; set; }
}
我可以像这样急切加载 SaleNotes...
_dbContext.Sale.Include(s => s.SaleNotes);
但是,尝试使用 ThenInclude 从 SaleNote 中预先加载 User 模型具有挑战性,因为它是一个集合。我找不到任何关于如何急切加载这个场景的例子。有人可以提供以下 ThenInclude 中的代码来为集合中的每个项目加载用户。
_dbContext.Sale.Include(s => s.SaleNotes).ThenInclude(...);
最佳答案
SaleNotes
是集合导航属性并不重要。它对于引用和集合应该是一样的:
_dbContext.Sale.Include(s => s.SaleNotes).ThenInclude(sn=>sn.User);
但据我所知,EF7 还支持使用 Select 扩展方法的旧的多级包含语法:
_dbContext.Sale.Include(s => s.SaleNotes.Select(sn=>sn.User));
关于c# - Entity Framework Core 急切加载然后包含在集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044451/