我有一个包含多个项目的 Visual Studio 解决方案。
我不是 100% 确定项目结构及其好处。
例如:我有一个名为 DOMAIN 的项目。在这里,我有几个文件夹,例如:
DOMAIN
|
|_Repository
|__Implementations
|____|__OrderRepository.cs
|____|__CustomerRepository.cs
|__Contracts
|____|__IOrderRepository.cs
|____|__ICustomerRepository.cs
SessionManager.cs
Model
|__Customer.cs
|__Order.cs
问题:是否应该在一个额外的项目中将模型与存储库分开?
如果是,为什么?
最佳答案
如果您努力使您的应用程序与存储无关,那么可以。一种方法是让您的模型包含存储库的抽象,例如抽象类或接口(interface)。然后您将拥有一个单独的项目,您可以将其称为数据访问层 (DAL),它会保存对您的模型项目的引用并实现抽象存储库。
这样做的好处是项目之间的职责分离更清晰(例如,您的模型项目实现业务逻辑,而您的 DAL 项目知道有关如何获取数据的血腥细节)。此外,这将允许您实现两种不同的 DAL,例如,一种以 SQLServer 为目标,另一种以 SqlLite 为目标。
关于model - 将模型和存储库保存在单独的项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564293/