Wee*_*eej 18 domain-driven-design entity-framework
我正在开始一个新项目,并决定尝试合并DDD模式,还包括Linq to Entities.当我查看EF的ObjectContext时,它似乎正在执行Repository和Unit of Work模式的功能:
存储库的意思是底层数据级接口是从实体表示中抽象出来的,我可以通过ObjectContext请求和保存数据.
工作单元在某种意义上说,我可以写入对objectContext的所有插入/更新,并在执行SaveChanges()时一次性执行它们.
将这些模式的另一层放在EF ObjectContext之上似乎是多余的?似乎Model类可以使用'partial class'直接合并到EF生成的实体之上.
我是DDD的新手,所以如果我在这里遗漏了什么,请告诉我.
Cra*_*ntz 17
我不认为实体框架是一个很好的Repository实现,因为:
另一方面,一旦有了ObjectContext,实现Repository模式就很简单了.实际上,对于不是特别复杂的情况,Repository是ObjectContext和Entity类型的包装器.
我会说你应该把ObjectContext看作你的UnitOfWork,而不是作为一个存储库.
ObjectContext不能是一个存储库-imho-因为它是'泛型'.您应该创建自己的存储库,它们在常规CRUD方法旁边有专门的方法(例如GetCustomersWithGoldStatus).
所以,我要做的是创建存储库(每个聚合根一个),并让这些存储库使用ObjectContext.