c# – 使用MVC5更新EF5中的Db

c# – 使用MVC5更新EF5中的Db,第1张

概述我正在使用Entity Framework 5和MVC5开展一个项目.我的项目目前正在运行. 我想在表中添加一列.但正如我们所知,在EF中,当我们在模型中添加一个字段时,它会丢弃并重新创建数据库,我无法做到. 一种方法是找到代码迁移.但我的经理不允许我使用它(因为它是一个大型数据库项目). 请帮助我并为它提出一些建议. 当我首先使用Entity Framework开始使用代码时,我遇到的情况和你一 我正在使用Entity Framework 5和MVC5开展一个项目.我的项目目前正在运行.
我想在表中添加一列.但正如我们所知,在EF中,当我们在模型中添加一个字段时,它会丢弃并重新创建数据库,我无法做到.
一种方法是找到代码迁移.但我的经理不允许我使用它(因为它是一个大型数据库项目).

请帮助我并为它提出一些建议.

解决方法 当我首先使用Entity Framework开始使用代码时,我遇到的情况和你一样.我一直在运行Update- Database -F,然后看着我的所有表都被删除并重新创建,即使是像重命名字段那样简单的事情.

版本控制数据库很难,但命名迁移更容易(我认为这是您在引用代码迁移时的意思).我知道你的老板反对这个想法,但它非常灵活.

基本上,您在程序包管理器控制台中运行Add-Migration -name xxx,并且实体框架将使用默认命令(用于版本化Up()和Down())为您构建配置类,它将在Update-Database时执行.如果您不喜欢这些命令,可以更改它们.如果需要,你甚至可以移动数据(虽然它有点繁琐).

我想你有四种选择;

>使用代码优先自动迁移:这是您目前所拥有的,并且无法充分控制更新数据库时发生的情况.它适合在项目的早期阶段开始,但在生产后变得难以处理.
>使用代号优先命名的迁移:通过配置为您提供所需的控制 – 但您的老板已阻止使用它.
>使用数据库优先方法:Database First允许您从现有数据库对模型进行反向工程.因此,如果您需要进行更改,则首先更改数据库,然后使用EF重新生成模型.这通常受到DBA的青睐,但这可能意味着您重新实现了现有项目的某些方面.
>不要使用实体框架:有可能你可以恢复到你的老板可能接受的SQL查询,并为你提供所需的灵活性 – 但谁需要那种痛苦?

如果我能进一步帮助,请告诉我.

总结

以上是内存溢出为你收集整理的c# – 使用MVC5更新EF5中的Db全部内容,希望文章能够帮你解决c# – 使用MVC5更新EF5中的Db所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存