因此,我一直在尝试重新设计我最近投入生产的项目中的数据访问。
我开始阅读有关存储库和工作单元模式的内容,这让我很感兴趣。我以前从未使用过 TDD,但我想我可能会试一试。
我正在做的事情并不重要,所以对我来说,更好地理解更多的是一种爱好。
我有一些工作,但想看看我是否完全错过了标记。这就是我所拥有的......(为简单起见,我将使用 Sln 而不是解决方案的名称)
Sln.DataAccess
+ Entities
+ Person.cs (contains the model definition of a Person)
+ IIdentifiedObject.cs (just an interface demanding a (Guid)Id property)
+ Repositories
+ IRepository.cs[1]
+ IUnitOfWork.cs[2]
Sln.DataAccess.Memory
+ PersonRepository.cs[3]
+ Context.cs[4]
+ GenericRepository.cs[5]
+ UnitOfWork.cs[6]
Sln.DataAccess.Sql (I suppose this could be Sln.DataAccess.EF but anyway...)
+ PersonRepository.cs
+ Context.cs
+ GenericRepository.cs
+ UnitOfWork.cs
Sln.Test
+ Various unit tests.
SQL Context/Repository/etc...本质上是相同的,只是它通过实体框架而不是内存列表访问数据库。
我要问的真正问题是我是否错过了整个 Repository/UnitOfWork 模式的标记,或者是否有任何建议任何人都可以提供我可以改进的地方。
这里是源文件。