代码之家  ›  专栏  ›  技术社区  ›  Dig

转换为对实体框架(TPT)中的子类的属性引用

  •  4
  • Dig  · 技术社区  · 14 年前

    我有以下计划:(不是真正的代码,只是为了得到这个想法)

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

    employee类型在数据库中有自己的表(每类型继承一个表)。

    假设我有一个公司实例没有加载contaceperson。 如何加载联系人以便它也加载员工字段(如果需要)?

    有没有办法在所有公司的选择中确定它呢?

    谢谢

    1 回复  |  直到 14 年前
        1
  •  0
  •   ckal    13 年前

    你应该能根据联系人的类型进行检查。

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

    所以,如果雇员类有额外的badgenumber属性。你可以通过将某人转换为雇员来访问该财产。

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