小编Its*_*-me的帖子

实体框架代码优先:迁移失败,更新数据库,强制不必要的(?)添加迁移

我使用迁移(EF 5.0)和代码优先有一个有趣的效果:

我用GUID主键创建了一些模型.(顺便说一句:对我来说,SQL Server使用它很重要NEWSEQUENTIALID(),这似乎是当前版本中的默认值)

在某些时候,我激活了迁移.我在初始迁移中添加了一些代码,这主要是.Index()根据需要.

当我删除数据库并调用update-database时,出现以下错误:

无法更新数据库以匹配当前模型,因为存在挂起的更改并且已禁用自动迁移.将挂起的模型更改写入基于代码的迁移或启用自动迁移.将DbMigrationsConfiguration.AutomaticMigrationsEnabled设置为true以启用自动迁移.您可以使用Add-Migration命令将挂起的模型更改写入基于代码的迁移.

我尝试过AutomaticMigrationsEnabled = true,无需更改或添加任何内容即可使用!

但既然我不想要AutomaticMigrationsEnabled,我也尝试再次删除数据库,update-database然后调用add-migration.我最终得到了一个似乎没有改变任何东西的额外迁移(见下文).我也尝试将这些行添加到初始迁移的底部 - 但这并没有改变任何东西.

其中一个型号:

[Table(Speaker.TABLENAME)]
public class Speaker : BaseModel
{
    public const String TABLENAME = "Speaker";

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

    [Required]
    [MaxLength(50, ErrorMessage = "Name must be 50 characters or less")]
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

初始迁移代码:

public partial class InitialCreate : DbMigration
{
    public override void Up()
    { …
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-migrations

65
推荐指数
2
解决办法
13万
查看次数

标签 统计

ef-migrations ×1

entity-framework ×1