먼저 Entity Framework 6 데이터베이스를 사용하고 있습니다. 나는 양파 건축을 구현하기 위해 프로젝트를 전환하여 우려를 더 잘 분리하는 방향으로 나아 간다. 많은 기사를 읽었으며 많은 비디오를 보았지만 솔루션 구조를 결정할 때 몇 가지 문제가있었습니다.Entity Framework 6 데이터베이스 우선 및 양파 아키텍처
4 가지 프로젝트가 있습니다. 코어, 인프라, 웹 & 테스트.
내가 배운 것을 보면 .edmx 파일을 "인프라"폴더 아래에 배치해야합니다. 그러나 Repository와 Unit of Work 패턴을 사용하여 EF 디커플링과 Dependency Injection을 지원하는 방법에 대해서도 읽었습니다. 이 존재와
는 말했다 :
내가 내 모델의 모든 개체에 대한 CORE에서 저장소 인터페이스를 작성해야합니까? 그렇다면 거대한 데이터베이스에서 어떻게 이것을 유지할 수 있습니까? automapper를 살펴 봤지만 IEnumererables 대 IQueryables를 제시하는 문제가 발견되었지만 사용할 수있는 확장 프로그램이 있습니다. 이 경로를 더 깊이 시도 할 수는 있지만 처음부터 다시 듣고 싶습니다.
대신 인프라에서 edmx를 그대로두고 엔터티의 .tt T4 파일을 CORE로 이동해야합니까? 이것은 단단한 커플 링 또는 좋은 해결책을 제시합니까?
제네릭 리포지토리 인터페이스는 귀하가 제공 한 제안과 잘 작동합니까? 또는 EF6가 이미 저장소 및 UoW 패턴 문제를 해결 했습니까?
제 질문을보고 주시고 다른 대안도 제시해주십시오.
내가 발견 대답하지 않은 여기에 유사한 게시물 : 당신은 그들이 그들에 대한 참조를 볼 경우, 그래서 EF6 and Onion architecture - database first and without Repository pattern
인터페이스 및 엔티티는 코어에 있어야합니다. 대규모 데이터베이스의 경우 제한된 컨텍스트와 도메인 기반 디자인을 살펴보십시오. 어니언 아키텍처의 목표는 핵심 프로젝트가 EF, AutoMapper, ASP.NET, WCF 등과 같은 외부 프레임 워크에 대한 참조를 갖지 않도록하는 것입니다. 특히 EF의 경우 엔티티와 EF 자체를 분리하는 것이 더 어렵습니다. 당신은 EDMX를 사용하고 있습니다. –
EDMX에서 @AnthonyChu와 동의하십시오. EF 전동 공구로 Reverse Engineered Code First를 살펴보아야합니다. – EfrainReyes
감사합니다. @AnthonyChu는 상황에 구애받지 않으며 DDD는 데이터베이스와 함께 작동하는 솔루션을 제공합니다. –