簡體   English   中英

是否可以在linq中使用OfType?

[英]Is it possible to use OfType in a linq where?

我有一個名為source的表,它有多個派生表,例如account等。我有一個第二個表,它有一個名為Source的表的導航屬性。

我想要做的是根據Source的類型過濾ActionItemState的結果,然后根據該繼承表的屬性進行過濾。

這是我正在嘗試做的一個例子。 當我嘗試下面的代碼時,我得到“.LINQ to Entities僅支持轉換EDM原語或枚舉類型”。 有沒有人知道使用OfType或類似的方法?

 query = from a in _actionItemRepository.GetTable()
         where a.ActionItemStates.Any(ais => ais.Source is AccountSource && ((AccountSource)ais.Source).AccountId == id)
         select a;

在此輸入圖像描述

您可以使用此代碼

Source.OfType<AccountSource>()

您在Where運營商之前申請

 OfType<AccountSource>().Where(....)

嘗試用另一種方式:

var accountSources = db.Sources.OfType<AccountSource>();
var actionItemStates = accountSources.SelectMany(a => a.ActionItemStates);

暫無
暫無

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

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