EFに内部結合を生成するメソッドを含める方法

entity-framework entity-framework-4
EFに内部結合を生成するメソッドを含める方法

EF4を使用します。 多対多のテーブルが原因で、明示的な結合を使用したlinq to EFクエリが機能しない状況があります。 EFに合わせてデータベースの設計を壊すつもりはないので、includeメソッドを使用します。 ただし、それは常に左外部結合を生成するようで、内部結合が必要です(テーブルが1対1または1対多の単純な `context.Table1s.Include(” Table2 “)`が問題を示します)。

内部結合を強制する方法はありますか?

  3  1


ベストアンサー

残念ながら、EFに特定の方法でクエリを生成させる方法はありません。

ただし、3つのエンティティを追加すると、デザイナーには2つのエンティティしか表示されません。3番目のエンティティは「関係」です。 したがって、たとえば、人、本、およびローンのエンティティがある場合、人と本のみが表示され、人にはBooks()というナビゲーションプロパティがあり、その人に関連するすべての本(ローン)が返されます。

必要に応じて、そのナビゲーションプロパティで.Include( “Books”)を実行することもできます。

0


より良いLINQを書くことで制御できます

私は非常にhttps://stackoverflow.com/questions/2490919 [同様の質問]を尋ねましたが、解決策を提供する有用な答えを得たので、クエリを内部結合に変換でき、クエリ実行時間を大幅に短縮できました。 特に、受け入れられた答えの2番目のソリューションは、後で使用したものです。マジックストリングがあまり好きではないので、eSQLを使いたくなかったからです。 それは過去10年を私に戻すでしょう。

0


タイトルとURLをコピーしました