我正在使用EF遷移在運行時動態創建數據庫模型。這可能會發生很多次,有時會修改現有的表,有時不會。由於每次我進行遷移時,我都不想創建包含整個數據庫上所有DbSets的大規模上下文,我只想包括我當前正在修改的表。
我做遷移下列方式將EF配置爲不刪除遷移中的任何表
Type contextType = null; //This will be my dbcontext
DbMigrationsConfiguration migratorConfig = new DbMigrationsConfiguration();
migratorConfig.ContextType = contextType;
migratorConfig.TargetDatabase = new DbConnectionInfo("ConnectionString", "System.Data.SqlClient");
migratorConfig.AutomaticMigrationsEnabled = true;
migratorConfig.AutomaticMigrationDataLossAllowed = false;
migratorConfig.ContextKey = "key";
migratorConfig.MigrationsAssembly = contextType.Assembly;
DbMigrator dbMigrator = new DbMigrator(migratorConfig);
dbMigrator.Update();
有沒有什麼辦法可以配置EF不丟棄不包括上下文,但存在以前遷移的表?每次使用不同的ContextKey
不是一種選擇,因爲EF會抱怨某個對象已經存在。
在此先感謝。
爲什麼downvote? – user2697817 2015-03-04 10:42:29
請不要多次編輯您的問題以獲得關注。如果你的問題的措辭正確,並顯示你的努力和你堅持的地方,那麼它將得到回答。有時候一些問題可能需要更多時間才能得到注意和回答。 – Krishna 2015-03-04 11:45:42
@ user2697817實際上克里希納可能會倒下它,這可能是發生了什麼事。 – SOfanatic 2015-03-04 14:05:24