我已经浏览了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