存儲庫模式用於從特定數據庫和對象關係映射技術(如EF)抽象使用。因此,如果我決定這樣做,我可以很容易地將(例如)我的Entity框架映射替換爲Linq to SQL。存儲庫模式與實體框架
但是,當我使用EF我有我的實體類從模型 - 也就是他們從該視覺圖生成。如果我在存儲庫中使用這個生成的實體類,然後決定用其他東西替換EF,那麼我將刪除該可視化實體圖,這意味着還要刪除類嗎?
我正在處理的一點是,我的存儲庫將依賴實體框架,即在數據訪問層上,因爲它將使用由EF生成的類。
我該如何消除這種依賴性?
另請注意,我主要使用EF是因爲它能夠從該視覺圖生成所有內容 - 我只是設計圖並讓它爲所有外鍵生成數據庫等。我非常喜歡這一點,不想考慮SQL命令。
@Ladislav Mrnka首先我不同意「不要設計你的應用程序,因爲可能發生的事情」。我總是試圖使我的代碼更加健壯和防守,並且通常會在以後證明這是一個很好的決定。幾乎沒有多餘的行意味着在重構和調試時節省了數小時。如果「由於可能發生的事情而不設計你的應用程序」是真的,那麼許多項目根本不會使用存儲庫(除了那些需要從一開始就支持2種永久存儲技術的應用程序之外)。其次,我只是感覺不好,因爲我需要一些DAL來包裝它。 – drasto 2011-03-23 09:05:00
@Ladislav Mrnka +1爲T4模板和這些鏈接。有關於此的更多資源? – drasto 2011-03-23 09:12:40
@drasto:如果你足夠熟練地對你的架構做出專業決定,那麼這種方法就沒問題。但是在回答和閱讀許多有關EF和知識庫的問題之後,我只是認爲許多開發人員都在構建他們的應用程序。從一開始就有兩種數據訪問技術是引入存儲庫的一個很好的理由,但您在問題中沒有提到它。 – 2011-03-23 09:15:37