2010-07-23 85 views
2

我是新來的實體框架4,我想知道,什麼是組織我的數據層的最佳方式 - 訪問EF4的代碼?組織一個EF4數據層?

在這一點上,我的數據層設置是這樣的:

  • 數據存儲類:舉行的EF4的ObjectContext的引用,包含的方法來打開,關閉,並持續了ObjectContext中來存儲。

  • 存儲庫類:每個實體的一個類,具有創建,獲取和刪除實體對象的方法。

有沒有更好的方法來組織EF4的這種功能?我已經找過關於這個主題的文章/博客,但我沒有找到太多。有什麼建議麼?

回答

2

我使用generic repository爲實體框架,使訪問非常容易。沒有必要寫一個獨立的存儲設備爲每個實體,只是:

MyDataContext ctx = new MyDataContext(); 
Repository<MyEntity, MyDataContext > myEntityRep = new Repository<MyEntity, MyDataContext>(ctx); 
myEntityRep.Add(new MyEntity() {//property settings}); 

這完全庫抽象實體模型,允許用於創建,修改和刪除實體。

+0

這是一個很好的觀點。我確實使用一個通用的Repository類作爲我的Repositories的基類。它消除了Repository類所需的大部分管道代碼。我需要的唯一代碼是針對特定實體唯一的查詢。 – 2010-07-23 16:17:28

+1

好吧,這聽起來像我正在使用合理的方法。由於包含代碼,選擇此答案。任何其他建議非常受歡迎。 – 2010-07-23 16:20:05

1

我更喜歡每個實體類型的存儲庫類(我知道它們是DataMapper)。所有查詢的一類很容易變得過於單一,難以維護。

+0

我認爲我們在這一點上達成一致。我爲每個「根」實體類型使用單獨的Repositorey類;即我將執行查詢的類型。 +1對DataMapper的參考 - 謝謝! – 2010-07-23 16:15:20