0
我想使用EF6的代码优先技术,但是当我对表进行更改时,它会删除数据库并重新创建它,清除所有数据。 有什么办法可以阻止这种情况发生?在EF6中更新CodeFirst中的数据库而不删除数据
我的代码:
Database.SetInitializer<EmployeeDb>(new DropCreateDatabaseIfModelChanges<EmployeeDb>());
我想使用EF6的代码优先技术,但是当我对表进行更改时,它会删除数据库并重新创建它,清除所有数据。 有什么办法可以阻止这种情况发生?在EF6中更新CodeFirst中的数据库而不删除数据
我的代码:
Database.SetInitializer<EmployeeDb>(new DropCreateDatabaseIfModelChanges<EmployeeDb>());
这些都是在代码中第一种方法为数据库动初始化策略:
Here,它可以给你一般的想法和如何使用这些方法之一。
由于您的意见CreateDatabaseIfNotExists
可以帮助你。使用这种方法添加或删除模型类时,您的db
将会更新,您的数据将保持稳定。
Here你可以找到例子都Context
构造和计算器config
文件
你也给出了答案。你的代码说,如果你改变你的模型,它会下降并创建数据库。 –
我想知道是否有替代方案,我可以先使用代码,但在更新表上不必重新创建数据库。 –
你可以使用Code First Migrations https://msdn.microsoft.com/en-us/library/jj591621(v=vs.113).aspx –