우리는 Base라는 기본 클래스가 있고 Derived1 및 Derived2라는 상속 된 클래스는 거의 없습니다. 클래스를 별도의 테이블에 배치하기 위해 우리는 속성이나 FluentAPI를 사용할 수 있지만이 경우에는 새로운 클래스를 정의 할 때 항상이 글을 작성하지만 새로운 상속 클래스는 빈번하다.EF 자동 매핑 테이블 당 매핑 전략
결국베이스의 후속 작업은 LolContext의 Bases를 거쳐야합니다.
그래서 EF가 해당 테이블에서 Base로부터 상속받은 모든 클래스를 자동으로 매핑 할 수 있습니까?
public class OneContext : DbContext
{
public DbSet<Base> Bases { get; set; }
public OneContext()
: base("OneDatabase")
{
}
}
public class Base
{
[Key]
public int Id { get; set; }
public int prop1 { get; set; }
}
public class Derived1 : Base
{
public int prop { get; set; }
}
public class Derived2 : Base
{
public int prop { get; set; }
}
# 갱신 1
내 질문을 명확히합니다.
모든 새로운 후계자에 대해 [Table ("")] 속성을 지정하지 않고 tabels (또는 일종의 이름 또는 ID)라는 이름의 모든 'Base'상속 된 클래스를 넣을 수있는 방법이 있습니까? new DbSet <> OneContext의 새로운 후계자마다?
질문이 업데이트되었습니다. 그래서 ... – QuestionAndAnswer
답은 동일합니다 - TPT 상속 된 테이블의 이름을 명시 적으로 지정하는 것을 피할 수 없습니다 (이것은 TPT와 TPT의 유일한 구성 차이입니다). 각 TPT 엔티티에 대해'DbSet' 속성을 생성 할 필요가 없습니다. – Moho