gpt4 book ai didi

c# - Entity Framework 、存储库模式、工作单元和测试

转载 作者:行者123 更新时间:2023-11-30 18:00:12 24 4
gpt4 key购买 nike

所以我一直在重新设计我最近投入生产的项目中的数据访问。

我开始阅读有关存储库和工作单元模式的内容,这让我很感兴趣。我以前从未使用过 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 上下文/存储库等...本质上都是一样的,只是它通过 Entity Framework 而不是内存中的列表访问数据库。

我要问的真正问题是,我是否错过了整个 Repository/UnitOfWork 模式的标记,或者是否有人可以提供任何建议,让我可以改进现有的内容。

这是源文件。

最佳答案

没有标准的方法来创建存储库。它旨在抽象某物,但对于不同的人来说,某物可能是不同的东西。有些人有通用的查询方法,有些人只在 repo 本身有专门的查询。

我会首先考虑用例,然后设计存储库以适用于这些用例。设计一个地址簿应用程序,并考虑您的存储库是否能够以方便的方式提供必要的功能。

关于c# - Entity Framework 、存储库模式、工作单元和测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com