내가 개체 A를 나타내는 클래스가 :EF 비계 기본 클래스 멤버
public class A
{
[Key]
private int _ID;
private string _property;
public ID {get {return _ID;} set {_ID = value;}}
public ID {get {return _property;} set {_property = value;}}
}
나는 (추가 이주, 갱신 데이터베이스)
테이블로 DB에 사용 EF를이 클래스를 스캐 폴딩 나는 다른이 3 개의 객체 B, C, D를 모의 속성으로 처리하므로 기본 클래스를 만듭니다. 그것에서 B, C, D를
public class Base_B_C_D
{
[Key]
protected int _ID;
protected string _prop;
protected List<A> A_List;
public ID {get {return _ID;} set {_ID = value;}}
public ID {get {return _prop;} set {_prop = value;}}
}
및 상속 :이 모든 객체가 나는 A와 참조를 만들 수 있도록 A 형의 객체의 목록을 포함해야
public class B:Base_B_C_D {}
public class C:Base_B_C_D {}
public class D:Base_B_C_D {}
나는 B, C를 발판 D를 DB로 EF를 사용하여 어떤 테이블에도 FK가 보이지 않고 A와 B, C, D 사이에 링크가 없습니다 ...
질문 : 링크를 비계하는 방법은 무엇입니까? 미리 감사드립니다.
이 방법은 B, C 및 D가 BASE_B_C_D와 정확히 동일한 속성이 있지만 BASE_B_C_D 속성에 대한 열이있는 DbSet가 하나뿐이므로이 속성이 저장되는 위치 (작성한대로)보다 많은 속성을 구현하면 어떻게됩니까? 나는 B 또는 С 또는 D ...에 List 을 포함 할 때 A에 나타나는 abuot FK를 알고 있습니다. 그러나 파생 된 각 클래스에 List 을 포함해야한다면이 상속은 무엇입니까? 목표는 BASE_B_C_D에 목록 을 포함하고 B 또는 C 또는 D에 다시 쓰지 않고 상속을 통해 만 사용하는 것입니다. – versus
TPT 상속을 사용할 때는 기본 클래스 유형의 DbSet에서만 만듭니다. [Table ("...")]을 사용하여 파생 클래스에 주석을 추가하면 파생 클래스의 속성에 직접 매핑되는 열, 즉 추가 속성이 저장되는 열과 함께 데이터베이스의 각 파생 클래스에 대한 테이블이 만들어집니다. 나는 FK가 당신이 묘사하는 방식으로 상속을 통해 EF에서 실현 될 수 있는지 확신 할 수 없다. 나는 항상 'many'FK를 표현할 컬렉션을 생성한다. 상속은 코드 재사용을 허용하고 클래스 간의 is-a 관계를 만듭니다. – MattSull