我已經瀏覽了Repository模式,並且認識到我過去使用的一些想法讓我感覺很好。實體類與LINQ to SQL提供程序分離以實現Repository模式。怎麼樣?
但是現在我想編寫一個應用程序,使用這種模式但我想從實體庫提供者那裏獲得實體類DECOUPLODED。
我想創建幾個組件:
- 一個「接口」組件,其將主辦常用接口包括IRepository接口
- 一個「實體」組件,其將主辦實體類如產品,用戶,訂單等。這個程序集將被「Interfaces」程序集引用,因爲有些方法會返回這些類型或它們的數組。另外它還會被主應用程序組件(如Web應用程序)引用一個或多個存儲庫提供程序組合件/組件。每個包括(至少)一個實現IRepository接口的類,並且它將與某個Data Store一起工作。數據存儲可能包括SQL Server,Oracle服務器,MySQL,XML文件,Web/WCF服務等。
研究LINQ to SQL在實現所有時間方面看起來非常高效,直到我發現生成的類和CustomDataContext類之間的深度依賴關係爲止。
如何在這種情況下使用LINQ to SQL?
本博客文章提出了一個很好的解決方案。 http://iridescence.no/post/Linq-to-Sql-Programming-Against-an-Interface-and-the-Repository-Pattern.aspx – Riko 2009-08-21 13:30:37
我已經實現了你所要求的,並將代碼發佈在我的博客:[一個通用的Linq到用於斷開連接的Linq到SQL數據層的SQL庫基類](http://devermind.com/linq/updated-generic-base-class-for-linq2sql-data-layers) – 2009-08-17 08:20:29