Приведение к свойству, ссылка на подкласс в Entity Framework (TPT) - PullRequest
4 голосов
/ 11 августа 2010

У меня есть следующая схема: (на самом деле не код, просто чтобы понять)

class Person;
class Employee : Person;

class Company
{
    public Person ContactPerson { ...}
    public EntityReference<ContactPerson> ContactPersonReference {....}
}

Тип сотрудника получил свою собственную таблицу в базе данных (наследование таблиц на типы).

Допустим, у меня есть экземпляр Company без загруженного ContacePerson.Как загрузить ContactPerson, чтобы он также загружал поля Employee (при необходимости)?

Есть ли способ определить его и для выбора всех компаний?

Спасибо

1 Ответ

0 голосов
/ 31 июля 2012

Вы должны просто иметь возможность проверить по типу ContactPerson.

if (company.ContactPerson is Employee)
     Console.WriteLine("I'm an Employee");
else
     Console.WriteLine("I'm a Person");

Так, если у класса Employee было дополнительное свойство BadgeNumber.Вы можете получить доступ к этому свойству, переведя Person в Employee.

if (company.ContactPerson is Employee)
    Console.Writeline("My badge Number is ", ((Employee)company.ContactPerson).BadgeNumber);
...