在EF Code First中,如何设置一对多属性?

时间:2013-05-10 19:04:37

标签: c# asp.net-mvc entity-framework ef-code-first

所以我有以下EF型号:

[Table("Site")]
public class Store{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    [ForeignKey("ID")]
    public virtual ICollection<Item> Items { get; set; }
}
[Table("Item")]
public class Item {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    [Column("SiteID")]
    public int storeID { get; set; }
    [ForeignKey("storeID")]
    public Store store { get; set; }
}

所以,从Item-&gt; Store开始似乎很好,数据填充。但Store-&gt; Items不会填充。我做错了什么?

1 个答案:

答案 0 :(得分:0)

弄清楚,要建立一对多关系,您需要使用InverseProperty。喜欢这个!

[Table("Site")]
public class Store {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    [InverseProperty("store")]
    public virtual ICollection<Item> Items { get; set; }
}

[Table("Item")]
public class Item {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ID { get; set; }
    [Column("SiteID")]
    public int storeID { get; set; }
    [ForeignKey("storeID")]
    public Store store { get; set; }
}

Everything load,event the items collection。