我正在尝试在我现有的项目中转换EF + Generic Repository + UoW +工厂模式,并浏览了很多很好的例子,但仍然有一些想要清除的混淆。
我仍然是新手,据我所知,设计将是这样的:
不得不说所有示例只需要1-2个域类,但在我的情况下,有大量的域类从DB映射,50 +,这是一个更大的项目。
- 使用EDM生成器生成EF模型,然后删除默认的EF生成器,因此edmx文件只是模型映射层。
- 从EDM文件生成域类。
- 构建IRepository,IunitOfWork。
- 将BaseRepository实现为通用存储库类继承IRepository
- 将UnitOfWork实现为继承IUnitOfWork
有两种方法可以在Repository和amp;之间进行交互。 UnitOfWork,有人使用属性注入,有人使用UoW作为Repository的构造函数的一部分。哪个更好?或者说更松散的耦合?
醇>
示例:
public Repository(): this(UnitOfWork.UnitOfWorkFactory.GetUnitOfWork())
{
//this.currentUnitOfWork.IncrementRefCount();
}
- 为每个域类创建一个存储库,比如EntityRepository,使用像BaseRepository这样的注入或继承BaseRepository并展开,覆盖所有函数。哪种方式更好?
在我的项目中,有很多域类,我是否需要为每个域类创建一个存储库?
醇>
还有其他步骤......但是到目前为止还想清除,我将继续添加进一步的步骤和讨论以完成整个过程。