![]() |
1
6
datacontext不是存储库模式,而是活动记录模式。 一旦你明白了两者的区别,你就会明白你的问题的答案。 活动记录是数据库中数据的面向对象视图。 存储库是存在于域模型中的对象,如果有,这意味着它的公共接口与数据访问技术完全分离。 使用linq或sql使用datacontext查询数据库,这是有意义的,因为linq和sql非常适合查询数据。 但是当您查询存储库时,由于我们更多地讨论域对象而不是数据,因此我们使用 Specification Pattern 它实际上是一种更适合您的域的小型查询语言。 简而言之,活动记录=数据库和数据访问,存储库=域模型。理想情况下,您的客户必须能够理解您的域模型的设计(例如,您的存储库和规范类),但他不理解什么是datacontext,因为它是开发人员的管道。 因此,为了清楚起见,“C 2.0中的存储库模式示例”并不是真正应该搜索的内容,“存储库模式示例”是,但是内部实现将使用经典的ADO而不是DataContext。 |