0

在 biginning 中,我这样定义模型:

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”列被Primary key和Foreign Key引用,所以迁移失败。如果我手动删除主键和外键,一切正常。但我希望自动迁移为我做这件事,可以吗?

4

2 回答 2

0

您可以使用“服务器探索”并手动操作表结构,例如删除键约束或删除整个表。并让 EF 生成全新的表定义。

于 2013-04-22T15:17:47.933 回答
0

Havent自己尝试过这样的迁移,但我记得看到一个选项

公共类 MYMigrationConfiguration : DbMigrationsConfiguration {

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


    }

否则,您可能需要针对此类更改进行基于代码的迁移

于 2012-12-26T04:04:26.667 回答