Entity framework EF迁移约束已存在

Entity framework EF迁移约束已存在,entity-framework,ef-code-first,entity-framework-migrations,Entity Framework,Ef Code First,Entity Framework Migrations,我尝试运行实体框架迁移: public override void Up() { AlterColumn("dbo.ThubOutputEmails", "AttachmentName", c => c.String(nullable: true, maxLength: 256)); SqlExecute("ALTER TABLE dbo.ThubOutputEmails ADD CONSTRAINT DF_ThubOutputEmail_C

我尝试运行实体框架迁移:

    public override void Up()
    {
        AlterColumn("dbo.ThubOutputEmails", "AttachmentName", c => c.String(nullable: true, maxLength: 256));
        SqlExecute("ALTER TABLE dbo.ThubOutputEmails ADD CONSTRAINT DF_ThubOutputEmail_Created default getdate() for Created");
    }
更新数据库
命令中将其转换为以下脚本:

ALTER TABLE [dbo].[ThubOutputEmails] ALTER COLUMN [AttachmentName] [nvarchar](256) NULL
EXECUTE('
ALTER TABLE dbo.ThubOutputEmails ADD CONSTRAINT DF_ThubOutputEmail_Created default getdate() for Created
')
它失败,并显示以下消息:

Column already has a DEFAULT bound to it

问题是列上没有DB约束,但迁移报告已经存在这样的约束。当我复制和粘贴SQL并在SQL Server Management Studio中运行它时,它运行正常,约束被创建。

我看到了与默认约束和其他列更改相关的问题。在某些情况下,在SSMS中一步一步地运行命令是可行的,但因为迁移是在批处理中运行的,所以它们会执行不同的操作。尝试将列更改拆分为2次迁移,看看是否有效。谢谢你的链接。这可能是我的错误,EF的设置是为了创建第二个数据库。我修改了脚本以仅在约束不存在时创建约束。