0

我目前正在为我的模型上的一些映射属性而苦苦挣扎。这是我的两个模型。我要做的是在我的表中只有唯一的 PersonTypes(即 MD、Nurse),并且人员模型引用这些 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 表中有 MD 2 次。这可能吗。谢谢。

4

1 回答 1

0

从您的示例中,我了解到您在 Persons 和 PersonTypes 之间具有多对多关系。要让 EF CodeFirst 理解这一点,您必须在 PersonType: 中创建对称导航属性public virtual ICollection<Person> Persons

于 2012-07-24T18:09:55.453 回答