C# 存储过程和更新EDMX
我在存储过程和EDMX方面遇到了无数问题。我创建了一个过程,从数据库中更新了模型,所有这些都成功了。然后,我删除了一列,并在存储过程中添加了一个新列。我更新了模型,但EDMX似乎没有刷新过程定义 我删除了proc,并进行了更新,但手动删除了对proc的所有引用。我最终只是重命名了proc并通过模型更新从数据库导入 我也有同样的问题。添加了新列,并重命名了现有列。我通过数据库中的更新模型刷新了EDMX,但对EDMX没有任何更改,显然在运行时,它失败了。实体框架应该如何更新存储过程C# 存储过程和更新EDMX,c#,entity-framework,C#,Entity Framework,我在存储过程和EDMX方面遇到了无数问题。我创建了一个过程,从数据库中更新了模型,所有这些都成功了。然后,我删除了一列,并在存储过程中添加了一个新列。我更新了模型,但EDMX似乎没有刷新过程定义 我删除了proc,并进行了更新,但手动删除了对proc的所有引用。我最终只是重命名了proc并通过模型更新从数据库导入 我也有同样的问题。添加了新列,并重命名了现有列。我通过数据库中的更新模型刷新了EDMX,但对EDMX没有任何更改,显然在运行时,它失败了。实体框架应该如何更新存储过程 我删除了pro
我删除了proc,重新生成了模型,删除了proc的“cs”文件,进行了编译,然后再次将过程添加到数据库中,重新生成了模型,然后砰的一声!它三次添加相同的模型,只有最后一个是正确的。为什么它一直在恢复旧版本?我能找到的唯一修复方法是关闭EDMX,手动编辑XML,即使在从数据库中删除存储的proc并从数据库中更新模型之后,仍然提到了该过程。从XML中删除行已经解决了这个问题。(这个解决方案是针对EF 6的。我没有在其他EF版本中尝试过。它很好用。)
转到模型浏览器。 MyStoreProc是存储过程的名称(例如)。MyStoreProc将出现在3个位置
轻松解决:)首先,请通过“从数据库更新模型”刷新SP,如果正常,则可以,如果不正常,则引发相同的异常,然后执行以下步骤。 1.双击.edmx文件。 2.在模型浏览器中,从复杂类型、函数导入和存储过程/函数中删除SP。 3.拯救一切。 4.通过“从数据库更新模型”再次添加SP。
5.全部保存。要刷新edmx文件中的现有存储过程
过程\u结果
步骤4:打开函数导入并删除您的过程
步骤5打开StoredProcess和Functions并删除您的过程
步骤6:保存Edmx(Ctrl+S),清洁解决方案,从数据库更新模型
,并选择您希望更新的过程
,然后最后清洁、构建
解决方案。
完成了 (在Visual Studio Community 2019 v16.8.5中测试EF6)
转到“模型浏览器”并浏览到您的过程。以下两个地方之一:
单击“刷新”选项卡 打开“存储过程和函数”,然后打开“dbo” 选择要更新的存储过程,然后单击“完成”。
完成了!(比删除然后再次导入要轻松;-)这非常有用,谢谢!我必须承认,我有点困惑,因为我在edmx图中寻找它,存储过程不显示在那里-只有表和视图。好的精确解决方案这在EF 5中也很有效。这当然有效,但在刷新完成后不实际更新edmx背后的想法是什么?这没有任何意义。太好了,很有魅力!我还清除了EDMX中的对象,并通过再次导入所有内容来重建它。非常有帮助,而且节省了时间。在EF 6.1.3中,所有工作都像夏普一样。谢谢你,我也是这么做的(投我一票)。正如我之前所评论的,微软的伙计们应该通过选择要更新的存储过程/函数来公开实现这一点的功能(类似于从数据库中添加/删除DBO。有一个“刷新”选项卡,对IMO没有太大帮助)