我在 EF 4 中使用 UnitOfWork 模式,只是想知道 EFUnitOfWork 的实现应该在哪里?它应该存在于存储库层中吗?我在域层中拥有所有接口(interface)。这听起来正确吗?
我正在使用 Ninject 通过 IUnitOfWork 注入(inject)存储库。
我想这真的没关系,因为您不会真正测试您的 EF 特定存储库,对吧?
另一种选择是让它存在于 EF 模型和上下文所在的数据层中。
通过将它放在存储库层中,该层现在需要对 System.Data.Entity 的引用。坏还是好?
最佳答案
在 DDD 之后,您通常需要在您的解决方案中使用 ProjectName.Core 项目。该项目的结构如下:
您的存储库接口(interface))
数据库相关文件,包括 uow 实现)
有时,如果项目足够大,我会在我的解决方案中再添加一个名为 ProjectName.Infrastructure.DataAccess 的项目,并将所有 DataAccess 实现放在该项目中。
关于entity-framework - Entity Framework 工作单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227777/