我想在表中添加一列.但正如我们所知,在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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)