当前位置:  开发笔记 > 后端 > 正文

更新edmx以反映数据库中所做的更改(.net linq-to-entities)

如何解决《更新edmx以反映数据库中所做的更改(.netlinq-to-entities)》经验,为你挑选了4个好方法。

从EDMX更新/删除并不总是有效.如果在单击"从数据库更新模型"时未更新模型,请说明在更新数据库中的视图/表时,请执行以下操作:

1)从模型图中删除视图/表
2)将EDMX切换到xml视图(右键单击edmx文件并选择"打开方式")
3)搜索并删除xml实体元素
4)切换回EDMX视图
5)单击从数据库更新模型

这应该反映您对DB到EDMX所做的任何更改.它很麻烦,但完美无缺.

在理想的世界中,我希望数据库中的更新模型能够同步从DB到EDMX的更改.但是,它在大多数情况下都不起作用.



1> pencilslate..:

从EDMX更新/删除并不总是有效.如果在单击"从数据库更新模型"时未更新模型,请说明在更新数据库中的视图/表时,请执行以下操作:

1)从模型图中删除视图/表
2)将EDMX切换到xml视图(右键单击edmx文件并选择"打开方式")
3)搜索并删除xml实体元素
4)切换回EDMX视图
5)单击从数据库更新模型

这应该反映您对DB到EDMX所做的任何更改.它很麻烦,但完美无缺.

在理想的世界中,我希望数据库中的更新模型能够同步从DB到EDMX的更改.但是,它在大多数情况下都不起作用.


Huagati有一个刷新edmx文件的工具,但它并不是免费的.http://www.huagati.com/dbmltools/

2> Peter Klein..:

我成功完成的是这个(VB.Net).

    根据需要/要求对数据库进行更新

    在EDMX模型中选择"从数据库更新",图形模型将正确显示新的结构/表格

    展开项目,以便显示所有相关文件

    具有"tt"扩展名的两个文件是重要的:首先使用没有.Context的文件.在tt扩展之前.右键单击它并选择"运行自定义工具":

运行自定义工具

    使用.Context对.tt文件执行相同的操作.在它的名字.您的所有代码和逻辑模型类都将更新.



3> bendewey..:

从数据库中选择更新模型是更新EDMX的最佳方法.某些属性未在Conceptual图层上更新.

通过在"模型查看器"工具箱中查看,确保已更新"商店"图层.如果商店已正确更新,那么您没问题,您的数据库也是同步的.如果是这样,请进入可视化设计器,单击该字段,转到属性,然后在Conceptual端更新NotNull属性.


他在问题中说"更新模型"不起作用.虽然信息丰富,但您的帖子实际上并没有解决问题.

4> 小智..:

是的,它在大多数情况下都不起作用: - /

"最佳方法"(因为它系统地工作)是删除EDMX文件并再次生成它.但是不要忘记删除App.config中的连接字符串(否则VS2008 wizzard会为默认实体名称添加后缀),并清除缓存.

我希望这些工具在下一版本中能够更好地工作,因为它会显着降低生产力......


可悲的是,在VS 2010 RC2中它仍然有效.我同意 - 它的反作用和容易出错.删除EDMX文件是唯一100%经过验证的方式使其正常工作.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有