c#中的存储库模式

时间:2009-10-25 19:14:48

标签: c# .net-2.0 repository-pattern

如何在C#.net 2.0中实现存储库模式?

告诉我基本结构。因为我们在.net 2.0中没有DataContext。

2 个答案:

答案 0 :(得分:6)

DataContext不是存储库模式,它是活动记录模式。 一旦你理解了两者之间的差异,你就会明白对你问题的回答。

Active Record是数据库中数据的面向对象视图。

存储库是一个存在于您的域模型中的对象,如果您有一个,这意味着它的公共接口与您的数据访问技术完全分离。

使用LINQ或SQL通过DataContext查询数据库,这是有道理的,因为LINQ和SQL非常适合查询数据。

但是当您查询您的存储库时,由于我们更多地讨论域对象而非数据,我们使用Specification Pattern,它实际上是一种更适合您的域的迷你查询语言。

简而言之,Active Record =数据库和数据访问,Repository = Domain model。理想情况下,您的客户必须能够理解您的域模型的设计(以及其他,您的存储库和规范类),但他不了解DataContext是什么,因为它是开发人员管道。

所以要明确,“C#2.0中存储库模式的一个例子”,并不是你应该搜索的,“存储库模式的一个例子”,但内部实现将使用经典的ADO而不是DataContext

答案 1 :(得分:2)

您可以看到ASP.NET here的示例,但我认为无论如何您都可以理解这个想法。