我有一些困難,爲我的LINQ查詢中包含的項目添加一些過濾條件。我的查詢就像實體框架包含過濾器子集合
var item = _Context.Order.Include("Inner")
.Include("Inner.first")
.Include("Inner.second")
.Where(x => (!(x.IsDeleted) && (x.IsActive) &&
(x.itemid == id))).FirstOrDefault();
在上面的代碼中「Inner」是另一個項目列表。現在我需要過濾內部物品。我只需要過濾條件inner.isDeleted = true的內部項目。
查詢應返回一類像,
public class Order
{
public string Name { get; set; }
public List<InnerDetails> Inner{ get; set; }
public bool IsDeleted { get; set; }
}
和InnerDetails類像
任何人都可以建議我一個更好的方法來做到這一點,因爲我在LINQ和EF
究竟是你想過濾 - 你想,只包括order.inner.isdeleted的從order.inner條目,或者你要刪除的整個記錄例如不符合條件的整行訂單?如果是第二個,那麼如果你有兩個條目order.inner,其中isDeleted = true,其中isDeleted = false – Alex
@Alex:我在問題中提到'我只需要內部過濾條件的內部項目。 isDeleted = true。',即我只需要包含刪除的內部記錄(inner.isDeleted = true)。這只是內部記錄,這不會影響外部記錄。 –
看來你正試圖過濾嵌套列表。我認爲這個問題可能會幫助你http://stackoverflow.com/questions/25183685/how-to-filter-nested-list-using-linq-lambda和這一個http://stackoverflow.com/questions/7079378/how -to-filter-nested-collection-entity-framework-objects – Alex