我正在努力成为一个更好的开发者......
我正在使用的内容:
- .Net MVC 框架 1.0
- 实体框架 3.5
我一直在阅读,我想我想做的是:
- 为域中的每个聚合创建一个存储库。例如,订单存储库将管理订单的 OrderItems。
- 创建一个服务层来处理业务逻辑。每个存储库都会有一个具有相似方法的相应服务对象。
- 在存储库和服务之间创建 DTO
- 可能创建 ViewModels,它们是 View 使用的类。
我有一个基本存储库接口,我的聚合存储库接口将实现...
public interface IRepository<T>
{
IEnumerable<T> ListAll();
T GetById(int id);
bool Add(T entity);
bool Remove(T entity);
}
我的 Order Repository 接口定义如下……随着我对这个学习练习的深入了解,可能会有其他方法。
public interface IOrderRepository : IRepository<Order>
{
}
我的服务类与存储库的定义基本相同,只是每个服务实现都包含业务逻辑。这些服务将在构造函数中采用存储库接口(我还没有准备好在这个练习中使用 IoC,但相信这就是我想要结束的地方)。
- 存储库实现将使用实体框架从数据库中推送和拉取。检索数据时;这些方法将只返回 DTO 而不是 EF 生成的对象
- 服务(正如我所说的那样)将控制存储库并执行业务逻辑。这些服务就是您将在控制器中看到的,即_orderService.GetById(1)。
- 这是我开始翻转并可以使用一些反馈的地方......我应该让我的服务类填充 ViewModel 类......我应该没有 ViewModel 类......也许从一种类型到另一种类型的映射太多?
我很想就我在关注点分离方面的前进方向得到一些反馈。
谢谢