将模型和存储库保存在单独的项目中

时间:2010-12-30 16:24:42

标签: model repository solution projects

我有一个包含多个项目的Visual Studio解决方案。

我并非100%了解项目结构及其好处。

例如:我有一个名为DOMAIN的项目。在这里,我有几个文件夹,如:

DOMAIN
|
|_Repository
  |__Implementations
  |____|__OrderRepository.cs
  |____|__CustomerRepository.cs
  |__Contracts
  |____|__IOrderRepository.cs
  |____|__ICustomerRepository.cs
  SessionManager.cs
  Model
  |__Customer.cs
  |__Order.cs

问题:模型是否应在额外项目中与存储库分离?

如果是,为什么?

1 个答案:

答案 0 :(得分:3)

如果您努力使您的应用程序与存储无关,那么是。一种方法是让您的模型包含存储库的抽象,例如抽象类或接口。然后你会有一个单独的项目,你可以调用类似数据访问层(DAL)的东西,它将保存对你的模型项目的引用并实现抽象存储库。

这样做的好处是可以更清晰地分离项目之间的职责(例如,您的模型项目实现业务逻辑,您的DAL项目知道如何获取数据的血腥细节)。此外,这将允许您实现两个不同的DAL,一个目标是SQLServer,一个目标是SqlLite。