实体框架6从现有表创建模型

时间:2015-06-02 12:55:33

标签: c# .net entity-framework entity-framework-6

我们必须维护一个非常旧的应用程序。 有一个旧部分(所有数据访问都使用存储过程处理),并且由于我的前任接管了应用程序,他们开始为使用实体框架6的新需求构建新部分。

现在,客户有一个新的要求,需要访问其中一个还没有EF模型的表。

是否有一种从现有数据库表自动创建EF模型的简单方法? (我只想要这一个表,而不是整个剩余的数据库!) 你知道任何可以实现这一目标的工具,还是我必须手工编写?

提前致谢

4 个答案:

答案 0 :(得分:3)

打开实体数据模型(edmx)文件(编辑:或者如果您还没有,则创建一个),右键单击空白区域中的设计图面,然后选择"更新模型数据库"

如果出现提示,请选择正确的连接字符串,然后选择"添加"选项卡,并深入查看要添加的数据库中的表并按其添加复选标记。点击“完成”即可完成。

答案 1 :(得分:3)

我使用 EF Power Tools 这是Visual Studio的插件。

Download here

使用该插件,您可以对数据库进行反向工程,以便在应用程序中创建对象和映​​射。尽管它会节省你很多时间,但请注意它并不完美。您可能希望查看索引和关系,因为我的案例中缺少某些索引和关系。

要对数据库进行逆向工程,它就像这样简单:

  

Reverse Engineer Code First命令用于生成POCO,   映射(配置)和派生的DbContext类   在现有数据库上。

     
      
  • 右键单击该项目,然后选择实体框架 - >相反   工程师代码优先

  •   
  • 输入有关现有数据库的信息   您希望对Code First进行逆向工程。

  •   

您可以从Microsoft查看此链接以获取完整示例:

https://msdn.microsoft.com/en-us/data/jj593170.aspx

重要提示:从Entity Framework 7开始(尚未发布),仅使用 Code First 方法。例如,在选择Model First之类的另一种方法之前,您可能需要考虑这一点。您可以阅读有关EF7 - What Does “Code First Only” Really Mean

的更多信息

答案 2 :(得分:2)

查看EF power tools插件,它为您提供Reverse Engineer Code First的上下文菜单以及其他代码生成选项

https://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d

答案 3 :(得分:1)

您是否只是创建了一个EDMX,只让它选择您希望它指向的表而不是整个数据库?

请参阅本文中的“从数据库生成”

https://msdn.microsoft.com/en-us/data/jj206878.aspx