0

最初に、次のようにモデルを定義しました。

public class Category
{
  public long CategoryId { get; set;}
  public string CategoryName { get; set; } 
  public virtual ICollection<ContentInfo> Contents { get; set; }
}

Public class Article
{
  public int ContentId { get; set; }
  public string Content { get; set; }
  [ForeignKey("Category")]
  public long CategoryId { get; set; }
  public virtual Category Category { get; set; }
}

Automatic-Migration でモデルからデータベースを生成した後、CategoryId の型を「long」から「int」に変更し、再度 Automatic-Migration でデータベースを更新しました。

今回は例外がスローされ、列「CategoryId」が主キーと外部キーによって参照されたため、移行に失敗しました。主キーと外部キーを手動で削除すると、すべて問題ありません。でも、Automatic-Migration にこれをやってもらいたいのですが、できますか?

4

2 に答える 2

0

Havent は自分でそのような移行を試みましたが、オプションを見たことを思い出します

public class MYMigrationConfiguration : DbMigrationsConfiguration {

    public MyMigrationConfiguration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = true; //have you tried this ?


    }

そうしないと、このタイプの変更に対してコードベースの移行が必要になる場合があります

于 2012-12-26T04:04:26.667 に答える