簡體   English   中英

Entity Framework Core 5 關閉加載 NavigationProperties

[英]Entity Framework Core 5 turn off loading NavigationProperties

DBContext獲取數據時,如何在 EF Core 5 中關閉加載導航屬性?

我試圖添加:

public DataContext(DbContextOptions<DataContext> options)
        : base(options)
{
   this.ChangeTracker.LazyLoadingEnabled = false;
}

但導航屬性仍在加載。

加載的 NavProp

編輯:我添加到AddDBContext選項

UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);

看起來這很有效。

希望它不會破壞其他任何東西?

Edit-2 UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); - 好吧,這不是我需要的......

我得到如下數據:

List<Data> dataList = await _dataContext.Data.Where(w => idMeters.Contains(w.IdMeter.Value)).ToListAsync();

結果我有帶有 IdMeterNavigation 的數據 object,而 IdMeterNavigation 有另一個 NavigationProperties...我不想加載任何 NavigationProperties 我該怎么做?

我什至從 class 字段中刪除了virtual並且它們仍然被加載。

EF 的默認行為是不加載相關實體。 為了加載相關實體,您可以使用:

  • 急切加載
  • 顯式加載
  • select加載
  • 延遲加載

所以,對我來說,您似乎啟用了延遲加載,或者您實際上使用“選擇”LINQ 擴展或某種自動映射器軟件進行了SELECT加載。

檢查您是否確定沒有啟用延遲加載... https://docs.microsoft.com/en-us/ef/core/querying/related-data/lazy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM