문제

MVC 웹 애플리케이션에 포함 된 ADO.NET Entity Framework Model (.EDMX 파일)과 통합되는 고유 한 사용자 정의 T4 템플릿을 작성하고 있습니다.

참조

다음 두 URL을 간단히 살펴보십시오.

  1. Scott Hanselman- "T4 Code Generation Visual Studio 최고의 비밀"
  2. Visual Web Developer 팀 블로그 - ASP.NET MVC 개발자를위한 빠른 시작 가이드

내가 달성하려는 것에 대한 간단한 설명

T4 엔진을 사용하여 ADO.NET Entity Framework Model의 기본 키를 기반으로 동작 메소드를 사용하여 MVC 컨트롤러 클래스를 생성하십시오.

내가 지금 가지고있는 것

  1. MVC T4 템플릿 파일 (예 : Controller.tt, Create.tt 등 ...) MVC 웹 프로젝트의 일부로 포함되었습니다.
  2. ado.net 엔티티 프레임 워크가 있습니다 mymodel.edmx 파일 ""에서 "모델" 폴더.

컨트롤러 이름을 기준으로합니다 (예 : "ProductController"), 나는 그것을 검색하고 싶다 System.Type 정보의 정보 "제품" ado.net 엔티티 프레임 워크 모델의 클래스. 나는 검색 할 수 있기를 원한다 System.type MVC보기 T4 파일과 동일한 방식으로 정보 (예 : edit.tt) 아래.

MvcTextTemplateHost mvcHost = (MvcTextTemplateHost) (Host);
Type type = mvcHost.ViewDataType;

최종 목표

반사를 통한 Ado.net Entity 프레임 워크 클래스에서 기본 키 정보 등을 읽기 위해 컨트롤러 방법 코드 생성을 만들고 싶습니다.
그리고
편집, 세부 사항, 작업 추가 등을위한 기본 CRUD 작업 및 메소드 서명을 생성합니다 ...

내가 붙어있는 곳

그러나 당신이 볼 수 있듯이 ASP.NET MVC 개발자를위한 빠른 시작 안내서 기사, 나는 검색 할 수 없다 System.Type ~을 위한 제어 장치 T4 템플릿이기 때문에 MVCTEXTTEMPLATEHOST 클래스는 만 노출됩니다 ViewDatatype MVC 뷰 생성을위한 속성.

다음 기술에 의해 [System.Type]를 검색하려는 시도는 ModelType 반환되고 있습니다 없는 유형을 찾을 수 없다는 의미입니다.

Type modelType = Type.GetType(modelFullyQualifiedName, false, true);

엔티티 프레임 워크 모델이 MVC 웹 프로젝트의 일부로 포함되어 있기 때문에 이것이 발생한다고 가정합니다. 그리고 컴파일 된 .dll 라이브러리 어셈블리의 일부로 포함되지 않습니다.

해결책을 찾는 데 도움이되는 몇 가지

  1. 어디에서 소스 코드를 찾을 수 있습니까? MVCTEXTTEMPLATEHOST 수업? 최소한 DLL 파일을 찾을 수 있다면 시각적 스튜디오에 입력 한 유형 정보를 코드로로드하는 방법을 살펴볼 수 있습니다. "보기 추가"대화 창.
  2. System을 동적으로 검색하는 방법이 있습니까? T4 Template에서 Visual Studio IDE API를 통해 Visual Studio Project에 포함 된 클래스의 유형 정보?

이 주제에 대해 저를 도울 수 있다면 정말 감사하겠습니다.이를 통해 추가, 편집, 세부 사항 등을위한 MVC 컨트롤러 작업 방법 및 기본 CRUD 작업 코드를위한 코드의 75%를 생성 할 수 있습니다.

도움이 되었습니까?

해결책

  1. 반사판을 사용하여 C : Program Files (x86) Microsoft Visual Studio 9.0 Common7 IDE Microsoft.weualStudio.Web.extensions.dll 어셈블리에서 MVCTEXTTEMPLATEHOST 소스 코드를 디 컴파일 할 수 있습니다.

  2. 예, Visual Studio에서 유형 메타 데이터를로드 할 수 있습니다. 코드 모델. 그러나 EDMX 파일에서 직접 읽는 것이 좋습니다. 어느 쪽이든, 이것은 상당한 작업입니다. VS 2010에서 EF T4 템플릿 형태로이를 수행하는 방법에 대한 예제가있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top