0

MVC3 웹 응용 프로그램과 데이터 프로젝트가 포함 된 솔루션이 Entity Framework 파일을 포함하고 있습니다. Entity Framework가 작동하지만 Entity Framework Entity Item 개체를 뷰에 전달하여 뷰에 전달하려고하면 다음 오류가 발생합니다.ASP.NET MVC3 및 Entity Framework를 사용하여 프로젝트 레이어를 분리하는 모범 사례

형식 'System.Data. Objects.DataClasses.EntityObject '는 참조되지 않은 어셈블리에 정의되어 있습니다. 어셈블리 'System.Data.Entity, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'에 대한 참조를 추가해야합니다.

해당 어셈블리에 대한 참조를 추가 한 다음 프로젝트에 using 문을 포함 시키려고했지만 아무 것도하지 않는 것 같습니다. 그러나이 문제를 가지고 있다면 질문에 Entity Framework 엔터티 항목을 전혀 사용하지 않는 것이 좋을까요? ASP.NET MVC3 및 Entity Framework를 사용할 때의 모범 사례에 따르면 프레젠테이션 계층, 비즈니스 계층 및 데이터 계층에서 발생해야하는 작업을 관리하는 가장 좋은 방법은 무엇이며 어떻게 분리 할 수 ​​있습니까? 난이 관련 질문 알고

... 도움을

감사합니다.

+0

응용 프로그램에서 어떤 오류가 발생합니까? –

+0

Tom Dykstra의 뛰어난 EF/MVC 자습서를 살펴보아야합니다. http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application – RickAndMSFT

답변

6

확인. 이것은 내 의견입니다 ...

우선 ViewModels에는 복합 유형이 없어야합니다. 복잡한, Entity Framework 물건 등 그들은 항상 깨끗해야했습니다. 뷰는 지속성이나 데이터베이스 또는 기타 등등에 대한 지식이 필요하지 않습니다. 모든 뷰는 렌더링해야하는 데이터입니다. 단순한.

그래서 ViewModels

는해야 POCO의 -> strings, ints, custom objectsstrongly typed collections 기본.

컨트롤러에서 복잡한 유형을보기 모델로 변환해야합니다. 이를 위해 AutoMapper을 사용하는 것이 좋습니다.

Here is a sample tutorial website 내가 한 일은 the Controller이 정보를 ViewModel .. 및 ViewModel is really simple으로 전달하는 방법을 보여줍니다.

0

도메인 개체가 EntityObject에서 상속 받기 때문에이 오류가 발생하므로 영속성을 모르는 것이 아닙니다. Entity 프레임 워크 라이브러리에서 종속되지 않도록하려면 POCO 생성 템플릿 또는 EF 코드를 먼저 사용해야합니다.

개인적으로 나는 "프리젠 테이션"계층에서 도메인 객체로 작업하는 것이 좋다고 생각합니다. 만약 Automapper로 완전히 도메인 모델을 분리한다면 거대하고 슈퍼 메인 티브 무언가를 구축하지 않으면, .

관련 문제