2017-11-15 5 views
0

MVVM 아키텍처를 WPF 앱과 통합하지만 코드를 먼저 사용하는 경우 this을 따르고 있습니다. 내 자신의 응용 프로그램에 대해 데이터베이스를 먼저 사용하고 있는데 개의 테이블 만 있습니다.WPFS 응용 프로그램에서 MVVM을 사용하는 첫 번째 모델 클래스

이것은 내 프로젝트 구조로, Model-View-ViewModel의 세 가지 레이어가 있습니다. 이 과정에서 그는 모델 프로젝트에서 코드를 먼저 사용하는 두 개의 모델 클래스를 만들고 데이터 액세스 프로젝트는 마이그레이션과 DbContext를 처리합니다. 내가 먼저 데이터베이스를 사용할 때

enter image description here

지금, EF 나를 위해 모든 모델 클래스를 작성하지만 데이터베이스 컨텍스트도 포함되어 있습니다. 내 edmx는 다음과 같이 구성되어있다 :

enter image description here

내 질문은 내가하는 프로젝트에 배치 할 필요가 무엇인가? 나는 UI 프로젝트에서 내 뷰 모델을 가지고 있는데, 데이터 프로젝트를 사용하여 새로운 컨텍스트를 만들지 만 UI 프로젝트에서이 모든 작업을 수행 할 수있는 것 같습니다.

답변

2

내 질문은 어떤 프로젝트에 배치해야합니까?

엔터티 클래스는 모델 프로젝트에 있고 DbContext은 데이터 액세스 계층에 속합니다.

다음을 수행하여 Nolek.tt 파일을 모델 프로젝트로 옮길 수 있어야합니다.

  • 파일 열기 탐색기 (Visual Studio에서 솔루션을 마우스 오른쪽 버튼으로 클릭하고 옵션 "파일 탐색기에서 폴더 열기"를 선택)와 모델 프로젝트 폴더에 Nolek.tt 파일을 이동합니다. 돌아 가기 Visual Studio에서

  • 이 솔루션 탐색기 상단에있는 "모든 파일 표시"아이콘을 클릭 한 다음 Nolek.tt 파일을 마우스 오른쪽 버튼으로 클릭하고 선택하여 모델 프로젝트의 Nolek.tt 파일을 포함하는 "에 포함 프로젝트 "옵션을 선택하십시오.

  • DAL 프로젝트에서 Nolek.tt 파일을 삭제하십시오.

모델 프로젝트의 템플릿에서 모델을 찾을 수 있도록하려면 올바른 EDMX 경로를 가리 키도록 수정해야합니다. 당신은 모델을 찾을 수있는 명시 적 경로를 가리 키도록 Nolek.tt 템플릿 파일에 inputFile 변수를 설정하여이 작업을 수행 할 수 있습니다 : 파일을 저장하면

const string inputFile = @"../NolekWPF.DataAccess/Nolek.edmx"; 

는, 엔티티 클래스는 모델 프로젝트에서 생성되어야한다.

자세한 내용은 다음 블로그 게시물을 참조하십시오 : 대신 어셈블리의 https://blog.magnusmontin.net/2013/05/30/generic-dal-using-entity-framework/

+0

대단히 감사합니다! 링크 된 블로그는 방금이 게시물로 다시 연결됩니다. – Leth

+0

아, 죄송합니다. 나는 내 대답을 편집했다. – mm8

0

개인적으로 모든 프로젝트를 동일하게 유지하면서 각 영역마다 네임 스페이스 (폴더)로 구분했습니다.

내 프로젝트에는 뷰 및 ViewModels 용 UI 폴더가 있고 모델 용 별도 폴더와 도우미 클래스와 같은 다른 폴더가 있습니다.

+2

네,하지만 사용하는 네임 스페이스 디자인의 위반 들키지 수 있습니다. –