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

本文关键字:创建 模型 框架 实体 | 更新日期: 2023-09-27 17:53:00

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

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

是否有一种简单的方法可以从现有的数据库表自动创建ef模型?(我只想要这一个表,而不是整个数据库!)你知道有什么工具可以做到这一点吗?还是我必须手写?

Thanks in advance

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

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

在这里下载

使用插件,你可以逆向工程你的数据库,以便在你的应用程序中创建你的对象和映射。尽管它会为你节省很多时间,但请注意,它并不完美。您可能需要检查您的索引和关系,因为在我的例子中缺少一些。

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

逆向工程代码优先命令用于生成POCO,映射(配置),以及基于的派生DbContext类

  • 右键单击项目,选择Entity Framework -> Reverse工程师代码优先

  • 输入已存在的数据库信息

你可以查看微软提供的完整示例链接:

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

重要:作为实体框架7(尚未发布),只有Code First方法将被使用。在选择另一种方法(例如Model First)之前,您可能需要考虑这一点。你可以阅读更多关于:EF7 -"代码优先"的真正含义

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

如果出现提示,选择适当的连接字符串,然后选择"Add"选项卡,并向下钻取到您想要添加的数据库中的表,并在它们旁边加上复选标记。点击Finish,完成。

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

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

您不能创建一个EDMX,只选择您希望它指向的表,而不是整个DB吗?

查看本文中的Generate From Database

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