簡體   English   中英

Entity Framework Core 3.0.Include 調用時間增加 10 倍

[英]Entity Framework Core 3.0 .Include call taking 10x more time

我在網上查看了幾乎所有內容,但無法在合理的時間內完成。

Entity Framework Core 3.0 .Include調用比單獨調用各個表然后在 C# 代碼中映射它們所花費的時間多 10 倍。

我有兩個表productproductimages ,其中 product productimages 是產品內部的集合。

現在,當我使用.Include function 鏈接調用時,從 DB 中獲取記錄需要很長時間:

products = _context.ProductUploadQueue
               .Include(x => x.ProductUploadQueueImage)
               .Where(x => x.ClientId == clientId && x.PalletId == palletID)
               .ToList();

但是如果我在單獨調用兩個表而不鏈接 Include 調用時做同樣的事情,它會加速一切:

 var g = _context.ProductUploadQueue
      .AsNoTracking()
      .Where(x => x.ClientId == clientId && x.PalletId == palletID)
      .ToList(); 

 var hp = g.Select(x => x.Id); 

 var y = _context.ProductUploadQueueImage
      .Where(x => hp.Contains(x.ProductUploadQueueId))  
      .ToList();

我怎樣才能加快速度?

我怎樣才能加快速度?

你剛剛發現了如何。 Go 返回並查看g ,您會發現所有productUploadQueueImage導航屬性都已填充。 當您運行第二個查詢時,更改跟蹤器將在加載第二個集合時修復任何關系。

在 EF Core 3 之前,可以在多次往返中執行包含查詢,就像您在此處所做的那樣。 生成包含多個表的單個查詢通常要慢得多。

暫無
暫無

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

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