如何在C#.net 2.0中实现存储库模式?
告诉我基本结构。因为我们在.net 2.0中没有DataContext。
答案 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的示例,但我认为无论如何您都可以理解这个想法。