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

use*_*909 5 mysqli entity-framework asp.net-mvc-3 asp.net-mvc-4

我们正在使用Entity Frame Work 5.0.和数据库MYSQL.当我们尝试迁移时间时获得异常.

"无法创建,因为无法确定主键列.使用AddForeignKey Fluent API完全指定外键."

请帮忙.

提前致谢.

Bar*_*ing 5

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

所以不要做

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);
Run Code Online (Sandbox Code Playgroud)

你应该做:

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");
Run Code Online (Sandbox Code Playgroud)


Vit*_*hal 1

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

检查所有表是否包含主键列