加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:05:22 所属栏目:百科 来源:网络整理
导读:我正在使用Entity Framework 5和MVC5开展一个项目.我的项目目前正在运行. 我想在表中添加一列.但正如我们所知,在EF中,当我们在模型中添加一个字段时,它会丢弃并重新创建数据库,我无法做到. 一种方法是找到代码迁移.但我的经理不允许我使用它(因为它是一个大
我正在使用Entity Framework 5和MVC5开展一个项目.我的项目目前正在运行.
我想在表中添加一列.但正如我们所知,在EF中,当我们在模型中添加一个字段时,它会丢弃并重新创建数据库,我无法做到.
一种方法是找到代码迁移.但我的经理不允许我使用它(因为它是一个大型数据库项目).

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

解决方法

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

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

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

我想你有四种选择;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读