2012-03-30 19 views
0

我正在使用實體框架,POCO實體和存儲庫模式進行數據訪問。我有一個存儲庫類,它返回給我一個特定類型的Iqueryable。EntityFramework,POCO實體和存儲庫模式中訪問多對多表的最佳方法

在我的數據庫中,我有一個多對多的關係表。 表格就像TemplatesTable和UserTable以及結點UserTemplate表

一個用戶可以有多個模板。所以有一個用於映射userid和templateid的聯結表。現在我必須顯示所有模板數據,如名稱和用戶的其他詳細信息。 在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

用戶模板是多對多的關係嗎? – 2012-03-31 19:20:33

回答

1

正確的做法是在您的User實體上擁有Templates導航屬性。比你只需要使用急切或懶惰的加載來填充導航屬性,你永遠不需要使用任何像自定義連接。

相關問題