0

코드 첫 번째 계층 당 상속에 대한 정보를 잘못 이해했을 가능성이 있지만 이것이 내 설정입니다. 상속하는 가젯에서 상속 한 HTMLGadgets 및 다른 유형이 있습니다. 실재. 엔티티에는 Id라는 속성 하나가 있으므로 일반 저장소 (this tutorial)에서 사용할 수 있습니다.Entity Framework 코드 첫 번째 일반 저장소를 사용한 TPH 상속

public DbSet<Gadget> Gadgets { get; set; } 

그래서, 내가 모든 기본 ID를 사용하려면, 그래서 모든 엔터티입니다 :

public abstract class Entity { 
    [Key] 
    public int Id { get; set; } 
} 

public abstract class Gadget : Entity {  
    public string Content { get; set; } 
} 

public class HTMLGadget : Gadget 
{ 
    public string SomeProperty { get; set;} 
} 

는 TPH 상속을 구현하기 위해 내 상황이 있습니다. 그러나 어떻게하면 코드 첫 번째 상속에 참여할 수 있습니까? 나는이 문제를 볼 수 있습니다 : 나는 컨텍스트를 변경하는 경우가 작동하지 않을 수 있습니다

public DbSet<Entity> Entities{ get; set; } 

가지고,하지만 난 모든 걸 거라고 하나 개의 계층 구조 테이블 (기기 이외의 이상의 테이블이있을 것이다)! 그러나 어떻게하면 Gadgets에서 EF POCO 클래스를 'bottom-out'으로 만들 수 있는지 알 수 없지만 Gadgets에서 기본 Entity Id 속성을 사용하여 일반 저장소에서 사용할 수 있습니다. 아무도 도와 줄 수 있습니까? -

답변

0

Entity 클래스를 매핑 할 필요는 없습니다. DbSet<Entity>을 소개하면 Entity 클래스가 매핑됩니다. 단일 테이블에서 다양한 유형의 가젯을 아프다면 Gadget 및 다른 하위 클래스를 매핑하십시오.

Entity 클래스에서 선언 된 속성은 EF에서 하위 클래스를 매핑하는 데 사용됩니다.