我们必须维护一个非常旧的应用程序。 有一个旧部分(所有数据访问都使用存储过程处理),并且由于我的前任接管了应用程序,他们开始为使用实体框架6的新需求构建新部分。
现在,客户有一个新的要求,需要访问其中一个还没有EF模型的表。
是否有一种从现有数据库表自动创建EF模型的简单方法? (我只想要这一个表,而不是整个剩余的数据库!) 你知道任何可以实现这一目标的工具,还是我必须手工编写?
提前致谢
答案 0 :(得分:3)
打开实体数据模型(edmx)文件(编辑:或者如果您还没有,则创建一个),右键单击空白区域中的设计图面,然后选择"更新模型数据库"
如果出现提示,请选择正确的连接字符串,然后选择"添加"选项卡,并深入查看要添加的数据库中的表并按其添加复选标记。点击“完成”即可完成。
答案 1 :(得分:3)
我使用 EF Power Tools 这是Visual Studio的插件。
使用该插件,您可以对数据库进行反向工程,以便在应用程序中创建对象和映射。尽管它会节省你很多时间,但请注意它并不完美。您可能希望查看索引和关系,因为我的案例中缺少某些索引和关系。
要对数据库进行逆向工程,它就像这样简单:
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,只让它选择您希望它指向的表而不是整个数据库?
请参阅本文中的“从数据库生成”