我应该如何在EF模拟这个?

时间:2011-06-16 19:50:55

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

我的应用应该有医务人员和参与者。

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

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

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.

}

问题在于,Medic最终也可能成为参与者...而且我不想为此创建新用户。 如何更改模型以允许此功能?

2 个答案:

答案 0 :(得分:1)

我会重做它是'有'而不是'是'关系。因此,不是医生是一个人,而是与一个人有关,如:

public class Medic
{
   public string MedicHospitalId;
   public Person Person;
}
然后会有一张与人员表有fk关系的军医表。参与者同样的事情。这将允许一个人成为两个人,并且我认为有点清理模型。

如果你想让它变得更加疯狂,你可以将它归一化为更多的eav表,但那是另一天。

答案 1 :(得分:0)

也许角色对你来说是个好方法?