实体框架 4 - 从模型更新数据库架构。不擦除表数据
我正在开发一个新项目,在该项目中,我可以使用 Entity Framework 4 从模型到数据库方法进行工作。
我正在开发的项目采用敏捷方法,随着时间的推移,将推出不同的阶段。
模型优先方法适合我的情况吗?我注意到,当您“从模型生成数据库”时,它会从头开始重新创建整个架构,这显然会擦除数据库中的所有数据。
我希望有一种更“从模型更新数据库”的方法,其中数据库将被更改以反映更改而不是重新创建。
有人有使用 EF 进行此类工作流程的经验吗?
谢谢,
詹姆斯·谢尔顿
I'm working on a new project where I have the luxury of working from a Model to Database approach using Entity Framework 4.
The project I'm working on is taking an agile approach where different phases will be rolled out over time.
Will the Model First approach work in my case? I noticed when you "Generate Database from Model" it recreates the entire schema from scratch which will obviously wipe all the data that is in the db.
I was hoping for a more "Update Database from Model" approach where the db would just be altered to reflect the changes rather than recreated.
Does anyone have any experience working in this type of workflow with EF?
Thanks,
James Sheldon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您现在可以使用迁移并在数据库上提交您想要的内容。
看看这篇文章
you can now use migrations and commit what you desire on you database.
look at this article
如果数据库已创建并且您希望在需要时应用 EF 迁移,则应遵循代码优先方法。
如果你想控制数据库的初始化方式,
实体框架提供了三个选项来初始化数据库。
如果不存在则创建数据库
此选项将在数据库不存在时创建数据库。这是实体框架代码优先的默认行为。如果模型发生变化,那么应用程序将抛出异常
You should follow the code first approach if the database is already created and you want tp apply the EF migrations when required.
if you want to control how the database is initialized,
The Entity Framework has provided three options to initialize the database.
Create database if not Exists
This option will create the database if it does not exist. This is the default behaviour of Entity Framework Code first. If the model changes, then the application will throw an exception