簡體   English   中英

Entity Framework Core 1.0.0:使用Where子句進行預先加載

[英]Entity Framework Core 1.0.0: Eager loading with Where-clause

當我使用EntityFramework 7.0.0-rc1時,我寫了這樣的東西:

context.MyEntity
.Include(e=>e.MySubEntities)
.Where(e=>e.MySubEntities.Contains(value))
.Where(e=>e.Status==1)
.ToList();

在EFCore 1.0.0中,相同的代碼拋出異常。 我猜想Include此刻的第一Where運行尚未加載的數據。 所以現在我需要首先用所有相關數據實例化我的集合然后查詢它。 之前的方法似乎是優化的,因為只有數據庫查詢(不是嗎?)。 我現在該怎么辦呢?

PS我正在使用Npgsql.EntityFrameworkCore.PostgreSQL 1.0.0

你不能在EF Core中使用Contains,因為這個值不能在表達式樹中翻譯:

就這樣使用它:

 var tmp = myConext.MyEntity
          .Include(e=>e.MySubEntities)
          .Where(x => x.MySubEntities.Select(id=>id.MySubEntitiesId).Contains(value.MySubEntitiesId))
          .Where(e=>e.Status==1)
          .ToList();

暫無
暫無

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

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