我目前正在为我的模型上的一些映射属性而苦苦挣扎。这是我的两个型号。 我要做的是在我的表中只有唯一的PersonTypes(即MD,Nurse),而person模型引用这些personTypes。
public partial class Person
{
public Person()
{
this.PersonTypes = new List<PersonType>();
this.Contacts = new List<Contact>();
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int FacilityId { get; set; }
[DataType(DataType.Text), MaxLength(200), Required]
public string FirstName { get; set; }
[DataType(DataType.Text), MaxLength(200)]
public string MiddleName { get; set; }
[DataType(DataType.Text), MaxLength(200), Required]
public string LastName { get; set; }
public int? SpecialtyId { get; set; }
public bool IsEnabled { get; set; }
// Mapped Properties
[ForeignKey("FacilityId")]
public virtual Facility Facility { get; set; }
[ForeignKey("SpecialtyId")]
public virtual Specialty Specialty { get; set; }
public virtual ICollection<PersonType> PersonTypes { get; set; }
public virtual ICollection<Contact> Contacts { get; set; }
}
public partial class PersonType
{
public PersonType()
{
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[DataType(DataType.Text), MaxLength(200), Required]
public string Name { get; set; }
public bool IsEnabled { get; set; }
}
Person1 = MD,护士 - Person2 = MD - Person3 =护士,CNP
我不希望在上面的例子中,在我的PersonType表中有2次MD。这可能吗。感谢。
答案 0 :(得分:0)
从你的例子中我收集到你在Persons和PersonTypes之间有多对多的关系。要使EF CodeFirst了解这一点,您必须在PersonType中创建对称导航属性:public virtual ICollection<Person> Persons
。