我正在尝试将我的应用程序从每个实体的存储库重构为每个聚合根的存储库。
一个基本的例子是我有一个 Cars 的实体根。汽车有租赁合同。据我所知,没有汽车就没有合同,因此汽车是总根。
我正在尝试实现一个用户视图,它将显示系统中的每个合同(根实体的所有子实体)。在重构之前,我可以去我的合约存储库并获取所有。由于合同存储库已被删除(因为它不是根),我现在需要将所有汽车从我的存储库中取出,然后获取他们的所有合同。
我的存储库有接口
public interface ICarRepository
{
IQueryable<Car> All { get; }
IQueryable<Car> AllIncluding(params Expression<Func<Car, object>>[] includeProperties);
Car Find(long id);
void InsertOrUpdate(Car car);
void Delete(long id);
void Save();
}
我想创建一个 ICarManagementService 并让它有一个 GetAllContracts 方法(可能带有过滤器参数)。这是否意味着获得我需要的所有合同,将所有汽车实体与他们的合同一起取出,然后检索与租赁合同相关的每个实体并过滤它们?
然后我可以将这些传递给控制器并像以前一样自动映射合同。
这是最佳实践吗?
谢谢
格雷姆