최근에 내가 생산에 투입 한 프로젝트에서 데이터 액세스를 다시 엔지니어링하는 작업을 해왔습니다.엔티티 프레임 워크, 리포지토리 패턴, 작업 단위 및 작업 단위
나는 Repository와 Unit of Work 패턴에 대해 읽기 시작했고, 흥미를 끌었다. 이전에는 TDD를 사용하지 않았지만 한 번 시도해 보겠다고 생각했습니다.
제가 작업하고있는 것이 중요하지 않으므로 더 나은 이해를 얻는 것이 더 취미가됩니다.
나는 작업하고 있지만 마크를 완전히 놓친 지보고 싶어합니다. 여기에 내가 가진 무엇 ... 그 점을 제외하고 같은 모든 본질적으로을 ...
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 컨텍스트/저장소/등 (내가 대신 단순위한 솔루션의 이름의 SLN를 사용합니다)입니다 메모리 내 목록 대신 Entity Framework를 통해 데이터베이스에 액세스하십시오.
내가 묻는 진짜 질문은 내가 전체 Repository/UnitOfWork 패턴에서 표시를 놓쳤는 지 또는 내가 가진 것에 대해 개선 할 수있는 사람이 줄 수있는 제안이 있는지 여부입니다.
다음은 소스 파일입니다.
- [1] https://gist.github.com/fddf625b1ee10bc0420a
- [2] https://gist.github.com/a020a016dd695309cb5c
- [3] https://gist.github.com/5f774e5f8dbcd41b1119
- [4] https://gist.github.com/9ab621962a5ea04403da
- [5] https://gist.github.com/a6d8f5f1b5fdcbbfaaf6
- [6] https://gist.github.com/7df0dca18489dd5555f8
올바른 저장소 유형을 생성하기위한'RepositoryFactory'도 포함 시켰습니다. – mellamokb
어디에 앉으시겠습니까? 내가하려는 것은 데이터 액세스에서 데이터 정의를 완전히 추상화하는 것입니다. 따라서 .Memory와 .Sql 어셈블리가 분리되어있는 이유는 무엇입니까? .ememory assembly는 결코 생산에 포함되지 않을 것입니다 **. – Brendan