【问题标题】:How should I model this in EF?我应该如何在 EF 中对此建模?
【发布时间】:2011-06-16 19:50:55
【问题描述】:

我的应用应该有 Medics 和 Participants。

他们都应该能够登录网站。

所以,我现在拥有的是这个。

public class Participant:Person
{
      public string EmergencyContactNumber;
}

public class Medic:Person
{
   public string MedicHospitalId;
}

public abstract class Person
{
   public string FirstName;
   public string LastName;

   public string UserName; //this is the Membership Provider UserName to associate the MembershipUser to the Person thats logging into to the system.

}

问题在于医生最终也可能成为参与者......我不想为此创建一个新用户...... 如何更改我的模型以允许此功能?

【问题讨论】:

    标签: asp.net-mvc entity-framework asp.net-mvc-3 inheritance ef-code-first


    【解决方案1】:

    我会将其重做为“具有”而不是“是”的关系。因此,与其说医生是一个人,不如说它与一个人有关,例如:

    public class Medic
    {
       public string MedicHospitalId;
       public Person Person;
    }
    

    然后会有一个与 person 表有 fk 关系的 medic 表。对参与者来说也是一样的。这将允许一个人两者兼而有之,并且我认为稍微清理一下模型。

    如果您想更疯狂地使用它,可以将其反规范化为更多的 eav 表,但那是另一天的事了。

    【讨论】:

      【解决方案2】:

      也许角色对你来说是一个很好的解决方案?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多