[英]Entity Framework apply filter with entities that have lists
我有使用實體框架的這段代碼
var test = _dbContext.Category
.Include(t => t.Items)
.Where(t => t.items.show == true)
.ToList();
類別具有項目列表。 但是,我無法應用過濾器show == true
。
為什么會這樣呢? 我如何解決它?
謝謝
t=>t.items.show==true
中的項目是一個集合,而不是單個項目,因此沒有show
屬性。
如果只需要使用show == true加載項目,則可以分別加載它們:
var categories = _dbContext.Category.ToList();
var items = _dbContext.Category.SelectMany(x => x.Items).Where(x => x.show == true).ToList();
EF會將這些項目自動添加到適當的類別。
您可以將Any
用於此類請求,並且如果不使用除過濾之外的其他項目,則可以避免使用Include。
var test = _dbContext.Category
.Where(t => t.items.Any(item=> item.show == true))
.ToList();
PS:我強烈建議使用C#命名約定。 Items
和Show
是屬性,則它們將更加准確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.