ので、最初に私のエンティティボトルネック使用してエンティティフレームワークの継承
私はすべての物語のタイトルを持つページを持ちたい問題とその種類
3階建てLongStory
、CoOpStory
、GenericStory
があります
一般的なストーリーは、一般的なストーリーのタイプとしてStoryType
に関連付けられています
LongStory
であれば、エンティティの種類を確認する必要が
CoOpStory
、私は方法がわからない私は物語があるかどうかを確認したいとき
は、私は2つの問題
最初のを持っていますいくつかのデータ[タイトルのみ]を取得してタイプを確認する
私はすべてのストーリータイトルとそのタイプのページを持っていたいと言ったように私は多くのことをせずにそれを行う方法を知らないクエリのうち、私はに関連付けられている必要があるので、StoryType
テーブルに参加することはできません。最初にすべてのストーリーを取得してから、毎回追加のクエリを実行しますGenericStory
タイプを取得する
私はちょうど書き込みを停止しました:) 'allStories'クエリは実際にはDBへの3回のラウンドトリップですか?私も 'Concat'を念頭に置いていましたが、パラメータは' IQueryable'ではなく 'IEnumerable'です。私たちが3つのラウンドリップを取得するかどうかはわかりませんでした。 'context.Stories。(context.Stories.OfType()) 'は' context.Stories.Where(s =>!(sはGenericStory)) 'に圧縮される可能性があります。 –
Slauma
'Concat'は' UNION ALL'に変換され、 'Union'は単にUNIONに変換されます。そうでなければ、linq-to-entitiesで組合を行う方法がありません。その圧縮はクールだ:)私は2つの連結を回避する方法について考えたが、これは私の心に来ていない。 –
'Concat'の翻訳方法を知っておいてよかったです!最後に、質問の最初の部分について、醜い(しかし働いている)何かを見つけました。これは本当に簡単な方法では不可能かと思います。 – Slauma