【问题标题】:Relationship loading in EF CoreEF Core 中的关系加载
【发布时间】:2021-12-31 21:27:02
【问题描述】:

刚刚遇到关系加载问题。问题是当我试图访问任何关系并且它为空时。我有通用存储库,有什么方法可以在其中启用预加载,而不是在实体配置中?尝试过延迟加载,但对我来说没有必要。

【问题讨论】:

  • “我有通用存储库” - 不要将通用存储库反模式与 EF 一起使用。您的DbContext 子类和DbSet<T> 类型已经是您的存储库。您无缘无故地损害了应用程序的设计。

标签: c# asp.net-core asp.net-core-webapi


【解决方案1】:

使用 Eager 加载时,您可以使用 Include 方法指定要包含在查询结果中的相关数据。

因此,让我们以有许多作者与之相关的书籍为例。结果中返回的书籍将使用相关书籍填充其作者属性。

using (var context = new BloggingContext())
{
   var books = context.Books
      .Include(book => book.Authors)
      .ToList();
 }

有关急切加载相关数据的更多信息 - https://docs.microsoft.com/en-us/ef/core/querying/related-data/eager

【讨论】:

  • 在实体配置中...但是,我怎样才能在存储库中进行动态加载呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2021-11-25
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多