0

我继承了一个 sql server 数据库和一个使用Entity Framework 5.0 Code FirstAuto Migrations的 ASP.Net MVC 4 Web 应用程序。但是,以前的开发人员似乎忘记向其中一个表添加主键。我现在正在尝试使用Auto Migrations来执行此操作,但是,它不起作用,也没有错误,似乎只是忽略了命令。

桌子是这样的

 public int CourseDateHistoryID { get; set; }
 public int CourseDateID { get; set; }
 public int Event { get; set; }
 //public string testProp{ get; set; }

我的映射是这样的,试图在CourseDateHistoryID上创建主键

this.HasKey(t => t.CourseDateHistoryID);

this.Property(t => t.CourseDateHistoryID)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

我想也许连接字符串是错误的,所以我尝试使用自动迁移添加一个名为testProp的哑字符串属性,但这很好用。

有人知道为什么我不能使用自动迁移将CourseDateHistoryID设置为 PK 吗?

谢谢你的帮助。

4

1 回答 1

2

您可以尝试使用 Update-Database -verbose 命令手动更新数据库。它应该向您显示它正在应用的迁移以及它遇到的错误。

或者为什么不使用 Add-Migration 命令添加另一个迁移并在那里手动添加主键,例如:

public partial class AddPrimaryKey : DbMigration
{
    public override void Up()
    {
        AddPrimaryKey(table: "dto.table", column: "CourseDateHistoryID", name: "PK_CourseDateHistoryID");
    }

    public override void Down()
    {
        DropPrimaryKey(table: "dto.table", name: "PK_CourseDateHistoryID");
    }
}

希望这可以帮助。

于 2013-06-26T08:18:15.040 回答