ASP.NET 5, 웹 프로젝트에서 엔티티 프레임 워크를 분리하려고했습니다.

asp.net-core asp.net-core-mvc entity-framework-core

문제

아래의 응용 프로그램 구조를 달성하려고합니다.

App.Model - UserModel - OrderModel

App.Service - UserService - IUserService

App.Entity - DbContext

웹 사이트 - WebAPI - 서비스 호출

대부분의 ASP.NET 5 응용 프로그램 예제는 웹 사이트의 시작 파일에서 엔터티 프레임 워크를 초기화합니다. .AddEntityFrameowrk () ..와 같습니다.

Entity를 별도의 프로젝트로 분리하는 방법과 Service 프로젝트에서 저장소를 호출하는 경우 DBContext를 시작하는 방법을 알아야합니다 (시작 파일은 클래스 라이브러리에서 사용할 수 없기 때문에)

인기 답변

이전 프로젝트에서는 하나의 솔루션 (또는 여러 솔루션)에서 여러 ASP.NET 프로젝트를 유지 관리하는 방식을 취했습니다. 이렇게하면 웹 응용 프로그램에서 EF 종속성을 제거하고 모든 EF를 처리하는 API에만 웹 응용 프로그램을 말할 수 있습니다

과거에는 모든 모델을 포함하고 웹 응용 프로그램과 API 프로젝트에서 모두 참조 할 수있는 전용 '도메인'프로젝트를 만들었습니다.

그래서 프로젝트 구조는 다음과 같습니다.

도메인 프로젝트 : 모델을 나타내는 c # 클래스 만 포함합니다. '비어있는'프로젝트로 시작하십시오.

API : 웹 API를 포함합니다. EF를 사용하여 데이터베이스와 상호 작용합니다. 개인적으로 모델의 API를 개인적으로 비계하지만 개인적인 선택입니다. 지금 ASP.NET 코어 1.0 RC1에서 웹 API 템플릿이 열악하여 전체 '웹 응용 프로그램'으로 시작하여 모든 기본보기, 컨트롤러, 스크립트 등을 제거합니다. 도메인 프로젝트를 참조하면됩니다. 모델에서 API 컨트롤러 스캐 폴딩

웹 응용 프로그램 : 기본 웹 응용 프로그램 프로젝트입니다. '웹 응용 프로그램'템플릿으로 시작하지만 컨트롤러의 HttpClient를 사용하여 데이터 상호 작용을 위해 API를 사용하십시오. 과거에는이 작업을 더 쉽게하기 위해 정적 인 'api 도우미 클래스'세트를 만들었지 만 이는 다시 개인 스타일 선택입니다. 들어오는 JSON 응답을 완전한 .net 모델로 변환 할 수 있도록 도메인 프로젝트를 참조합니다.



Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow