我有使用DbMigrator,不知何故遷移類不執行,當然在數據庫中沒有反映的問題執行遷移。實體框架 - DbMigrator不執行遷移類
我試圖實現是一羣我遷移到版本。基本上我有一個版本基類,其中所有版本都是從中派生的。
例如我有一個類Version1000其對應於1.0.0.0版本。
版本類有一個名爲ExecuteMigrations方法負責執行與它對應的版本遷移。
下面是一個版本類(Version1000 for 1.0.0.0)的示例,請參閱使用DbMigrator的ExecuteMigrations方法,它也使用從DbMigrationsConfiguration派生的VersionConfiguration類,它在那裏設置名稱空間,目錄,在ContextType。等等。
public class Version1000 : Version
{
public override string VersionNumber
{
get { return "1.0.0.0"; }
}
public static Version Version
{
get
{
return new Version1000();
}
}
public override void ExecuteMigrations()
{
var configuration = new VersionConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(MyCustomContext.CONTEXT_CONNECTION_STRING_NAME);
var migrator = new DbMigrator(configuration);
migrator.Update();
}
}
VersionConfiguration類
class VersionConfiguration : DbMigrationsConfiguration<MyCustomContext>
{
public VersionConfiguration()
{
AutomaticMigrationsEnabled = false;
MigrationsNamespace = "Some.Namespace._1000";
MigrationsDirectory = "Migration\\1000";
ContextType = typeof(MyCustomContext);
}
protected override void Seed(MyCustomContext context)
{
base.Seed(context);
}
}
在我的應用程序的應用開始我做的是檢查我的數據庫的當前版本,然後適用的是無版本t應用於當前數據庫。這是通過調用版本類的ExecuteMigrations方法來完成的。
事情是我沒有得到任何異常,只是當調用DbMigrator.Update方法時,這些更改沒有反映到數據庫中,並且DbMigrationsConfiguration中設置的文件夾/命名空間中的遷移類從未執行。
應用類型:ASP.NET MVC 4 .NET框架:4.5
我有從DbMigration派生遷移類和是有在那裏語句創建表就像在你的榜樣。如果您試圖查看自定義DBMigrationsConfiguration(VersionConfiguration),它將在其中設置遷移類的名稱空間及其所在的文件夾,但不知何故它不會執行它們。 – mdcuesta 2013-03-18 07:40:55