EntityFrameworkでの多段階の結合

こんにちは。beaglesoftの真鍋です。

Ruby on Railsを利用していたときにいろいろと悩ましい思いをしたのが、N+1問題です。

Rails - N+1問題は1+N問題 - Qiita

BulletというGemを利用して検出するのですが、多段階になってくるとなかなか対応に苦慮します。

EntityFramework(EF)でもこのN+1問題は起こりえます。もちろんJavaのJPAでも。O/Rマッパーを利用したときにエンティティに関連を持たせるならば避けては通れない問題ですよね。そんなN+1問題のなかでも多段階の結合を行う方法がEFでは簡単に行えました。

関連オブジェクトの読み込み (Entity Framework).aspx)

ちょっと簡単なサンプルを作りたいのですが、時間がないのでリンクだけにします。一言でまとめると、Include("関連.関連の関連")というように文字列で定義すれば結合してデータを取得してくれます。とても便利ですね。

ASP.NET MVC5実践プログラミング

ASP.NET MVC5実践プログラミング