我已经写在与SQL Server精简4.0数据库组合使用EF 6.0的应用程序。当客户第一次使用这个应用程序时,它(应用程序)应该在给定路径中创建一个具有初始值的数据库文件。也应该允许迁移,因为很可能对象模型可能随着将来版本的应用程序而改变。策略部署EF控制数据库
现在I'm想知道什么将是部署用户生产系统上的数据库的最佳方式。我能想到的方法有三种:
我可以创建一个数据库文件与初始值,只是在安装过程中把它复制到正确的位置,并在应用程序中使用MigrateDatabaseToLatestVersionInitializer。
在的DbContext-构造函数(我有两个上下文),我可以据此检查现有DB-文件,并使用不同的数据库,初始化器。类似于CreateDatabaseIfNotExistsInitializer,其中包含一个种子方法,该方法在未找到场时创建初始数据,如果DB文件存在则创建MigrateDatabaseToLatestVersionInitializer。
我可以始终使用MigrateDatabaseToLatestVersionInitializer并在其“种子” - 方法检查现有表项并创建它们(如果它们不存在)。
以下哪种方式是首选或者是有没有更好的办法,我认为didn't的?
,因为MigrateToLatestDatabase初始化程序需要现有的数据库,或者可能是migrationhistory表我承担。我想我会坚持方法1。 – tafkab76