EF5:无法创建,因为无法确定主键列.使用AddForeignKey流畅API来完全指定外键



我们正在使用Entity Frame Work 5.0。数据库MySQL。当我们试图迁移时间时,得到一个异常。

无法创建

,因为无法确定主键列。使用AddForeignKey流畅API来完全指定外键。

如本文http://www.ozkary.com/2015/02/the-foreign-key-on-table-with-columns.html所述,当将FK放入不属于Db Context的表中时,可能会出现问题

所以不写

CreateTable(
    "dbo.App",
    c => new
    {
        Id = c.Int(nullable: false, identity: true),
        Name = c.String(nullable: false, maxLength: 150),
        RoleId = c.String()
    })
    .PrimaryKey(t => t.Id)
    .ForeignKey("dbo.MyRoles", t => t.RoleId)
    .Index(t => t.RoleId);

你应该这样做:

CreateTable(
    "dbo.App",
    c => new
    {
        Id = c.Int(nullable: false, identity: true),
        Name = c.String(nullable: false, maxLength: 150),
        RoleId = c.String()
    })
    .PrimaryKey(t => t.Id)
    .Index(t => t.RoleId);
AddForeignKey("dbo.App", "RoleId", "dbo.Roles","Id");

实体框架要求在主表中的整个主键和从属表中对应的列(外键)之间建立关系。

检查是否所有的表都包含PRIMARY KEY COLUMN

最新更新