我已經寫在與SQL Server精簡4.0數據庫組合使用EF 6.0的應用程序。當客戶第一次使用這個應用程序時,它(應用程序)應該在給定路徑中創建一個具有初始值的數據庫文件。也應該允許遷移,因爲很可能對象模型可能隨着將來版本的應用程序而改變。策略部署EF控制數據庫
現在I'm想知道什麼將是部署用戶生產系統上的數據庫的最佳方式。我能想到的方法有三種:
我可以創建一個數據庫文件與初始值,只是在安裝過程中把它複製到正確的位置,並在應用程序中使用MigrateDatabaseToLatestVersionInitializer。
在的DbContext-構造函數(我有兩個上下文),我可以據此檢查現有DB-文件,並使用不同的數據庫,初始化器。類似於CreateDatabaseIfNotExistsInitializer,其中包含一個種子方法,該方法在未找到場時創建初始數據,如果DB文件存在則創建MigrateDatabaseToLatestVersionInitializer。
我可以始終使用MigrateDatabaseToLatestVersionInitializer並在其「種子」 - 方法檢查現有表項並創建它們(如果它們不存在)。
以下哪種方式是首選或者是有沒有更好的辦法,我認爲didn't的?
,因爲MigrateToLatestDatabase初始化程序需要現有的數據庫,或者可能是migrationhistory表我承擔。我想我會堅持方法1。 – tafkab76