1
我得到這個問題,讓我生氣很多天。我編寫一個控制檯應用程序,首先使用代碼創建一個新數據庫,然後使用遷移來更新它。它工作得很好。但是,當我編寫一個wcf服務來執行像控制檯應用程序一樣的操作時,它不會按我的需要工作。問題是我無法使用代碼更新數據庫,但PM控制檯上的命令(Update-Database -Verbose)可以執行此操作。你能給我一些建議嗎? 這裏是我的代碼: Configuration.cs使用代碼先使用代碼而不使用PM控制檯命令更新數據庫
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(DatabaseInitialization.DatabaseModel 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" }
// );
//
}
遷移文件:
public partial class InitialCreate : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
主文件:
public static void InitializeService(DataServiceConfiguration config)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseModel, DatabaseInitialization.Migrations.Configuration>());
InitializeDatabase();
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
public static void InitializeDatabase()
{
var context = new DatabaseModel();
context.Database.Initialize(true);
}
謝謝!
嗨soadyp,我絕對創建了一個數據庫,我想遷移到它。我在構造中聲明瞭Database.SetInitializer(null),但沒有運氣。 –
2013-05-07 08:12:51
好吧,我希望遷移工作。 – 2013-05-07 08:47:44