我有以下方案:(不是真正的代码,只是为了了解这个想法)
class Person;
class Employee : Person;
class Company
{
public Person ContactPerson { ...}
public EntityReference<ContactPerson> ContactPersonReference {....}
}
员工类型在数据库中拥有自己的表(Table-per-Type 继承)。
假设我有一个没有加载 ContacePerson 的 Company 实例。
如何加载 ContactPerson 以便它也加载 Employee 字段(如果需要)?
有没有办法在所有公司的选择上确定它?
谢谢
最佳答案
您应该能够通过 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);
关于entity-framework - 转换为对 Entity Framework (TPT) 中的子类的属性引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3459334/