3

accountなどの複数の派生テーブルを持つsourceというテーブルがあります。Sourceというテーブルへのナビゲーションプロパティを持つ2番目のテーブルがあります。

私がやりたいのは、ActionItemStateの結果をソースのタイプでフィルタリングしてから、その継承されたテーブルのプロパティに基づいてフィルタリングすることです。

これが私がやろうとしていることの例です。以下のコードを試してみると、「。LINQtoEntitiesはEDMプリミティブまたは列挙型のキャストのみをサポートしています」と表示されます。OfTypeまたは同様のものを使用する方法を知っている人はいますか?

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

ここに画像の説明を入力してください

4

2 に答える 2

2

逆に試してみてください。

var accountSources = db.Sources.OfType<AccountSource>();
var actionItemStates = accountSources.SelectMany(a => a.ActionItemStates);
于 2012-10-09T17:35:08.447 に答える
1

このコードを使用できます

Source.OfType<AccountSource>()

Where演算子の前に適用します

 OfType<AccountSource>().Where(....)
于 2012-10-09T17:34:18.260 に答える