2012-03-30 9 views
0

データアクセスにEntity Framework、POCOエンティティおよびリポジトリパターンを使用しています。私は特定のタイプのIqueryableを返すリポジトリクラスを持っています。EntityFramework、POCOエンティティおよびリポジトリパターンの多対多テーブルにアクセスするための最良の方法

私のデータベースには、多対多関係テーブルがあります。 テーブルはTemplatesTableとUserTable、接合UserTemplateテーブルと同じです

1人のユーザーが複数のテンプレートを持つことができます。したがって、ユーザーIDとテンプレートIDをマッピングするためのジャンクション表があります。今度は、名前のようなすべてのテンプレートデータ、ユーザーのためのその他の詳細を表示する必要があります。 EF POCOでこれを行う最善の方法は何ですか?

今私はこのアプローチに従っていますが、これは最善の方法ではないことを理解しています。

var Tempaltes = TemplateRepository.All(); 

var templateforUser = UserTemplateRepository.where(UserId==1) 

var userTemplates= from tmp in Templates 

        join tmpusr in templateforUser on tmp.TemplateId equals tmpusr.TemplateId 
          select tmp; 

return userTemplates.ToList(); 

これを実行する最適な方法をお勧めします。

+0

User-Template many-to-manyの関係はありますか? –

答えて

1

正確な方法は、UserエンティティにTemplatesナビゲーションプロパティを設定することです。あなたはナビゲーションプロパティを満たすために熱心なまたは怠惰な読み込みを使用する必要があり、カスタム結合のようなものを使う必要はありません。

関連する問題