.net EF 4.1代码优先-使用[必需]属性更新模型

.net EF 4.1代码优先-使用[必需]属性更新模型,.net,entity-framework,ef-code-first,.net,Entity Framework,Ef Code First,我的模型以前没有任何数据符号,但我最近改变了这一点,对一些属性应用了[Required]。发生这种情况时,我的迁移代码开始抛出异常,如: 无法应用挂起的更改,因为正在进行自动迁移 残废要启用自动迁移,请确保 DbMigrationsConfiguration.AutomaticMiggrationsEnabled设置为true 我假设必须执行一些明确的迁移操作。请澄清 编辑:AutomaticMigrationsEnabled=true对我来说不是选项,我对如何使用一些迁移脚本使之成为可能很感兴

我的模型以前没有任何数据符号,但我最近改变了这一点,对一些属性应用了[Required]。发生这种情况时,我的迁移代码开始抛出异常,如:

无法应用挂起的更改,因为正在进行自动迁移 残废要启用自动迁移,请确保 DbMigrationsConfiguration.AutomaticMiggrationsEnabled设置为true

我假设必须执行一些明确的迁移操作。请澄清


编辑:AutomaticMigrationsEnabled=true对我来说不是选项,我对如何使用一些迁移脚本使之成为可能很感兴趣。

添加一个扩展dbmigorationsconfiguration的配置类,并将AutomaticMigrationsEnabled设置为true,示例类如下所示

namespace yournamespace
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Migrations;
    using System.Linq;

        internal sealed class Configuration : DbMigrationsConfiguration<YourDbContext>
        {
            public Configuration()
            {
                AutomaticMigrationsEnabled = true;
                AutomaticMigrationDataLossAllowed = true;
            }


        }
    }

我想这会解决你的问题

我不确定我的观点是否完全一致,但我想这就是你要问的。我已将自动迁移设置为false:

public Configuration()
{
        AutomaticMigrationsEnabled = false;
}
我有一个如下设置的Post类:

public class Post
{
    public int Id { get; set; }
    public string Title { get; set; }
    [Required]
    public DateTime DateCreated { get; set; }
    public string Content { get; set; }
    public string Tags { get; set; }
    public ICollection<Comment> Comments { get; set; }
}

在这里,我只需从PM控制台运行Update Database,然后发送更改。

您可以通过package manager控制台通过执行以下脚本来创建迁移脚本:

PM> Enable-Migrations 

PM> Add-Migration Initial

PM>  Update-Database

最初在此处找到:

如何在没有AutomaticMiggerationsEnabled=true选项的情况下执行相同操作?
PM> Enable-Migrations 
PM> Add-Migration Initial
PM>  Update-Database