DBContext T4 템플릿과 함께 EF 4.2 (데이터베이스 우선)를 사용하여 POCO 클래스를 만듭니다. 이것은 매우 잘 작동하지만, 지금은 추상 기본 클래스에 문제를 통해 stumpled :Entity Framework 4 + DBContext T4 + 추상 기본 클래스
//my abstract base class (shortened)
public abstract class BaseClass {
public abstract int? Property1 { get; set; }
public abstract int? Property2 { get; set; }
// a lot of methods that work with above properties
}
//my T4 generated entity (shortened)
public partial class Entity {
public Nullable<int> Property1 { get; set; }
public Nullable<int> Property2 { get; set; }
}
//and a partial class to make the T4 entity inherit from my abstract class
public partial class Entity : BaseClass {
}
내 문제 : 나는 내 T4는 추상적 인 속성을 가진 사용자 정의 추상 클래스에서 상속 POCO 클래스를 생성해야합니다
T4 클래스의 속성이 "재정의 (override)"로 표시되어 있지 않기 때문에 컴파일러가이를 빌드하지 않는다는 것입니다. LINQ 2 SQL에서 엔터티 속성에 대한 상속 수정자를 변경할 수있는 옵션이 있지만 EF 모델 디자이너에서이 옵션을 찾을 수 없습니다.
EF 모델 디자이너와 T4 템플릿에 특정 속성을 재정의한다고 표시하는 방법이 있습니까 (물론 생성 된 C# 코드를 변경할 수 있지만 T4가 다시 실행될 때이 변경 사항을 덮어 씁니다)? 이 컴파일을 할 수있는 다른 방법이 있습니까 &?
고마워, ~ saxx
업데이트 1 : 오타를 수정했습니다.
답장을 보내 주셔서 감사합니다. 솔루션 3을 사용하는 경우 엔 Linq to Entities가 여전히 작동하는지 알고 있습니까? –
해결 방법 솔루션 1을 사용하여 끝났습니다. 이것은 정말 나쁜 해킹이며, 나는 그것을 싫어합니다. (왜 내가 싫어하는지 설명하기 위해 20 줄의 코드 주석을 만들었지 만) 작동합니다. 감사. –