Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF根据数据库更改重新生成代码模型_C#_Entity Framework - Fatal编程技术网

C# EF根据数据库更改重新生成代码模型

C# EF根据数据库更改重新生成代码模型,c#,entity-framework,C#,Entity Framework,我正在玩EF,并建立了一个从数据库生成的模型。模型仅为代码,没有设计者 我在一个数据库表中添加了一个字段 有什么简单的方法可以“重新生成”模型代码吗 我想如果我使用了设计器,这会更容易,而且我可以找到有关以相反方式迁移的信息(添加模型属性并获得迁移以更新数据库),但没有关于如何将更改从数据库传播到模型的信息 我想我可以手动完成,但这似乎不太理想…一个选项就是从项目中删除自动生成的类,然后再次生成它们。在遵循这种方法的同时,我们唯一需要确保的是,我们应该为数据模型(从DbContext继承的类名)

我正在玩EF,并建立了一个从数据库生成的模型。模型仅为代码,没有设计者

我在一个数据库表中添加了一个字段

有什么简单的方法可以“重新生成”模型代码吗

我想如果我使用了设计器,这会更容易,而且我可以找到有关以相反方式迁移的信息(添加模型属性并获得迁移以更新数据库),但没有关于如何将更改从数据库传播到模型的信息


我想我可以手动完成,但这似乎不太理想…

一个选项就是从项目中删除自动生成的类,然后再次生成它们。在遵循这种方法的同时,我们唯一需要确保的是,我们应该为数据模型(从DbContext继承的类名)提供与前一个相同的名称。

我记得不久前做过类似的事情——它首先被称为反向工程代码。基本上,它查看当前数据库并基于该数据库为您创建POCO类。正如本教程所建议的,在创建新项目时,我已经做到了这两个方面:

我还使用了这个工具的旧版本:


最后,你可能会发现Jaydeep的删除和重新开始的方法是最简单的。

@VolodymyrBilyachat-我在这里发布之前刚刚读过。。。似乎做的与我想要的相反(如问题中所指出的)@BarryO'Kane-同样的事情-这看起来确实是从模型迁移到db的更改。不是我要找的,除非我遗漏了一些很明显的东西?哦,对不起,我的错。但你为什么这样做。迁移的目的是控制代码中的所有内容。并创建迁移,以便在部署时可以应用db更改。谢谢,msdn中的此注释有助于将其置于上下文中:“代码先到数据库”向导旨在生成一组类的起始点,然后您可以调整和修改这些类。如果数据库架构发生更改,则可以手动编辑这些类或执行另一个反向工程来覆盖这些类。我也会把工具放在脑后归档,但现在可能会选择Jaydeep的。我已经考虑过了,但不确定是否有更好的方法。我特别担心的是,我以后可能不得不进行任何调整,我必须在这样做后重新调整(我还没有调整任何东西,只是尝试提前思考),如果您只需确保在执行过程中传播更改,您仍然可以进行调整。e、 g.如果您在模型代码中进行了更改,请确保在开始直接修补数据库之前,使用迁移/初始值设定项将其推送到数据库中。这样你就不会失去同步,如果你以后在数据库中做了大量的修改,你可以删除你的模型代码,然后重新进行修改。另外,如果你想给模型添加功能,就要利用它们是部分类的优势。@Tone我更担心的是,这些调整不会像现在这样回到db阻抗失配胶上。我(非常)不熟悉EF/ORMs,但我想我以后可能会遇到导航属性之类的问题。但是,我的实体模型和域模型是分开的,所以在DTO适配器中放置不匹配的胶水可能足够安全。。。或许这都是无端的担忧。不过我会努力的,我现在感觉比一小时前好多了。