如何创建外键使用迁移代码(一对多关系)

时间:2016-01-26 12:18:32

标签: asp.net-mvc

我有2个班级:

公共课Retete

{
    public Retete() { }

    public int ID { get; set; }
    public string Nume { get; set; }
    public string Categorie { get;  set; }
    public string Grupa { get; set; }
    public string Descriere { get; set; }
    public string Ingrediente { get; set; }
    public string Preparare { get; set; }


    //Configure 1 to many relationship
    //Foreign Key

    [ForeignKey("GrupaIndivizi")]
    public int GrupaID { get; set; }

    [ForeignKey("GrupaID")]
    public virtual GrupaIndivizi GrupaIndivizi { get; set; }
}

公共课GrupaIndivizi

{
    public GrupaIndivizi(){}

    [Key]
    public int GrupaID { get; set; }
    public string NumeGrupa { get; set; }

    public virtual ICollection<Retete> Retetes { get; set; }
}

和创建的表

enter image description here

我的问题是如何使Retetes表中的GrupaID成为外键?

1 个答案:

答案 0 :(得分:0)

在实体框架中创建外键的一种方法是:在密钥的Id旁边,您需要拥有该类型的对象。检查是否有效。

[Table("Retete")] 
public class Retete
        {
            public Retete() { }

            public int ID { get; set; }
            public string Nume { get; set; }
            public string Categorie { get;  set; }
            public string Grupa { get; set; }
            public string Descriere { get; set; }
            public string Ingrediente { get; set; }
            public string Preparare { get; set; }


            //Configure 1 to many relationship
            //Foreign Key

            [ForeignKey("GrupaIndivizis")]
            public int GrupaIndiviziID { get; set; }
            public GrupaIndivizi GrupaIndivizi { get; set; }
        }

我还建议给表格提供一些更合适的名字,不要让EF产生名字。这可以通过Table属性来完成。
你的FK没有生成核心,因为他试图绑定到GrupaIndivizi表,但你有GrupaIndivizis