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

标签 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

问题:是否应该在一个额外的项目中将模型与存储库分开?

如果是,为什么?

最佳答案

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

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

关于model - 将模型和存储库保存在单独的项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564293/

相关文章:

mysql - Yii2:防止 ActiveRecord 属性中的空字符串

git - 为什么某些 repo 协议(protocol)的 repo 同步需要很长时间

c# - 存储库和规范模式

c# - Entity Framework 以 1-* 关系存储集合大小

wpf - Visualstudio 如何知道当前项目的类型?

c# - 无法加载一个或多个项目,但是VS却没有说是哪个

php - 更新时,跳过更新 yii 的某些属性

Kubernetes 模板 UML 模型

postgresql - 关联表中的 gorm many2many 和附加字段

Excel VBA .查找范围异常