我有以下方案:(不是真正的代码,只是为了得到这个想法)
class Person;
class Employee : Person;
class Company
{
public Person ContactPerson { ...}
public EntityReference<ContactPerson> ContactPersonReference {....}
}
员工类型在数据库中获得了自己的表(Table-per-Type继承)。
假设我没有加载ContacePerson的公司实例。 如何加载ContactPerson以便加载Employee字段(如果需要)?
有没有办法在选择所有公司时确定它?
由于
答案 0 :(得分:0)
您应该只能通过ContactPerson的类型进行检查。
if (company.ContactPerson is Employee)
Console.WriteLine("I'm an Employee");
else
Console.WriteLine("I'm a Person");
因此,如果Employee Class具有BadgeNumber的附加属性。您可以通过将Person转换为Employee来访问该属性。
if (company.ContactPerson is Employee)
Console.Writeline("My badge Number is ", ((Employee)company.ContactPerson).BadgeNumber);