我已閱讀關於代碼第一次遷移的每篇博文和MSDN文章(http://msdn.microsoft.com/en-us/data/jj591621.aspx),但我不清楚該如何使用它。實體框架代碼第一次遷移問題 - Dataloss
這裏是我的項目遷移歷史:
1.Initially我用「啓用的遷移」,然後添加遷移和更新數據庫。 2.我部署了項目 3.我對模型做了一些小改動。重新運行添加遷移和更新數據庫。 4.部署項目 5.我增加了更多的屬性模式。另外,我運行禁用的遷移和運行Enable-遷移-EnableAutomaticMigration 6.現在,當我部署項目..和運行的第一次,所有現有數據已經一去不復返了
老項目的應用程序(步驟#4) - 遷移\ Configurations.cs
namespace POC_Manager.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
internal sealed class Configuration : DbMigrationsConfiguration<POC_Manager.Models.POC_ManagerContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
ContextKey = "POC_Manager.Models.POC_ManagerContext";
}
protected override void Seed(POC_Manager.Models.POC_ManagerContext context)
{
// This method will be called after migrating to the latest version.
// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//
}
}
}
新建項目(步驟#6) - 遷移\ Configurations.cs
namespace POC_Manager.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
internal sealed class Configuration : DbMigrationsConfiguration<POC_Manager.Models.POC_ManagerContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
ContextKey = "POC_Manager.Models.POC_ManagerContext";
}
protected override void Seed(POC_Manager.Models.POC_ManagerContext context)
{
// This method will be called after migrating to the latest version.
// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//
}
}
}
老項目(步驟#4) - 從GET-遷移輸出
PM>獲取的遷移 已應用到目標數據庫檢索遷移。 201405271907443_AutomaticMigration 201404252210039_InitialCreate PM>
新建項目(步驟#6) - 從獲取的遷移輸出
PM>獲取的遷移 已經應用到目標數據庫中檢索遷移。 201407022020263_AutomaticMigration 201406262227296_AutomaticMigration 201405271907443_AutomaticMigration 201404252210039_InitialCreate PM>
另一個令人困惑的是,...我仍然需要運行啓用自動遷移後更新的數據庫的命令?