Entity framework 对于代码优先和EF的DBMigrations有点困惑

Entity framework 对于代码优先和EF的DBMigrations有点困惑,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我有一个我创建并启用迁移的项目。它是用4.3创建的,所以我认为它是最新的。我在上下文的构造函数中有一些代码执行更新,请参见下面的代码,每当我添加诸如可为null的字符串列之类的内容或执行不以非一致方式更改数据库的内容时,这些代码似乎都能正常工作。我的场景是更改模型,当我查看sql跟踪时,它会自动为我更改列 我的问题是,我想做上下两种方法,但对它们何时运行感到困惑。也就是说,我现在使用的是版本1,我在up方法中添加了一些代码来添加列,然后,当我想转到版本3时,它如何知道要调用哪个up方法 困惑-彼

我有一个我创建并启用迁移的项目。它是用4.3创建的,所以我认为它是最新的。我在上下文的构造函数中有一些代码执行更新,请参见下面的代码,每当我添加诸如可为null的字符串列之类的内容或执行不以非一致方式更改数据库的内容时,这些代码似乎都能正常工作。我的场景是更改模型,当我查看sql跟踪时,它会自动为我更改列

我的问题是,我想做上下两种方法,但对它们何时运行感到困惑。也就是说,我现在使用的是版本1,我在up方法中添加了一些代码来添加列,然后,当我想转到版本3时,它如何知道要调用哪个up方法

困惑-彼得

namespace MigrationsAutomaticDemo.Migrations
{
using System.Data.Entity.Migrations;

public partial class AddBlogRating : DbMigration
{
    public override void Up()
    {
        AddColumn("Blogs", "Rating", c => c.Int(nullable: false, defaultValue: 3));
    }

    public override void Down()
    {
        DropColumn("Blogs", "Rating");
    }
}
}
,


如果在迁移配置中启用自动迁移,则无需指定目标迁移。迁移器将根据当前上下文和目标数据库的快照自动构建更改

var migratorConfig = new DbMigrationsConfiguration<SiteDB>();
migratorConfig.AutomaticMigrationsEnabled = true;

我仍然不知道我在哪里为每一步设置了不同的上下。也就是说,我可能需要在每个步骤上使用自己的sql来完成迁移。例如设置外键以更正已填充数据的值。嗨,Peter,您需要为每个步骤生成每个迁移。例如:201204250656061_AddBlogRatingVersion2将添加Rating和VisitCount列。201204250656061_AddBlogRatingVersion3将添加LastVisited和LastUpdated列。迁移目标是一个由工具生成的id很抱歉太厚了,但我仍然感到困惑。如果有无法自动生成的更新,我如何对这些更新进行编码,以便它们将某个版本设置为“向上”或“向下”版本?另外,您必须使用package manager吗?您可以修改生成的迁移类,有一些方法可以使用,您甚至可以使用sql方法放置sql查询。如果要对应用程序进行版本控制,则需要使用包管理器生成每次迁移。如果没有,您可以使用代码自动迁移来更新到最新版本。”新的DbMigratornew DBMIGROTIONS配置{automaticMIGROTIONSENABLED=true}.Update;'
var migratorConfig = new DbMigrationsConfiguration<SiteDB>();
migratorConfig.AutomaticMigrationsEnabled = true;
Configuration configuration = new Configuration();
DbMigrator migrator = new DbMigrator(configuration);
migrator.Update("201204250656061_AddBlogRatingVersion2");
migrator.Update("201204250656061_AddBlogRatingVersion3");
migrator.Update("201204250656061_AddBlogRatingVersionX");