0

EF 코드 우선 상속을 수행하려면 유형별 테이블 접근 방식을 사용하려고합니다. 이 같은 내 실제 구조의 :이 구성에EF 코드 상속 우선 - 유형별 테이블 (TPT)

public partial class Person 
{ 
    public int ID {get; set;} 
    public string Name { get; set; } 
} 

public partial class Employee : Person 
{ 
    public int ID { get; set; } 
    public string Document{ get; set; } 
} 

, 예를 들어, 내가이 작업을 수행 할 수 있습니다

var obj = new Employee(); 
string a = obj.Name; <--- The property Name is from Person model 

그러나 반대 방향과 관련하여 이런 종류의 작업을 수행 할 수 없습니다 (같았다 LINQ에서 완료) :

Employee 개체에서 모델 Person에 액세스하는 방법이 있습니까?

미리 감사드립니다.

+1

직전에 만들어지기 때문에 사람이 직원 수 없으며이 경우

var obj2 = new Person(); string b; var employee = obj2 as Employee; if (employee != null) { b = obj2.Person.Document; } 

을하지만 :

바라건대 다음은 옳은 방향으로 당신을 얻을 것이다 모든 'Person'은 'Employee'입니다. – DavidG

+0

모든 '바나나'는 '과일'이지만 모든 과일은 '바나나'와 같은 방식입니다. – DavidG

+0

예. 맞습니다. 그러나 일부 직원은 직원입니다. 사람으로부터 직원 모델에 액세스 할 수 있는지 여부를 알 수있는 방법이 있어야합니다. 마찬가지로 objEmployee.Person! = null? ((objEmployee) Person) .Name : string.Empty; 이와 비슷한 것 – BernardoMorais

답변

0

모든 사람이 주석에 언급했듯이 사람은 직원이 아니며 직원 속성에 액세스 할 수 없습니다. "as"연산자를 사용하면 사람이 직원 일 경우 직원 객체로 변환되고, 직원이 아닌 경우 null이됩니다. `Person`있는이 모든`Employee`

+1

고마워요. 이 방법은 완벽하게 작동합니다. – BernardoMorais