如何从DataEntities.edmx中正确删除存储过程?

时间:2015-04-25 05:34:30

标签: entity-framework stored-procedures

如果我使用“存储过程”文件夹中的Visual Studio Server资源管理器定义存储过程myStoredProcedure,那么我将转到.edmx更新模型。

我可以在后面的代码中使用myStoredProcedure,并且可以被IntelliSense检测到,并且工作正常。

当我从数据库和myStoredProcedure模型中删除.edmx时。 它仍然由IntelliSense检测到。即使它在服务器资源管理器中也没有跟踪 - > “存储的Prodecures”文件夹也不在.emdx“存储过程/函数”文件夹中。

使用时没有显示编译错误,但运行时错误(当然是预期的)。

  

无法执行函数import'DataEntities.myStoredProcedure',因为它未映射到存储函数。

如果我在数据库中再次重新定义myStoredProcedure - >服务器资源管理器 - > “存储的Prodecures”,并更新.edmx模型。 IntelliSense检测到两个:

  • myStoredProcedure - >这是旧的,并导致运行时错误。
  • myStoredProcedure1 - >这是新的,工作正常。

那么如何从DataEntities.edmx

正确删除存储的prodecure

3 个答案:

答案 0 :(得分:1)

右键单击edmx->使用...打开-> XML(文本)编辑器->查找并删除所有引用过程名称的相关xml块。

Open with XML Editor

确保找到并删除与之相关的所有内容。

Delete related xml blocks_1

Delete related xml blocks_2

如果您的过程带有后缀_Result,还搜索不带后缀的所有内容,并同时删除所有引用它的xml块。

然后按Ctrl + S保存edmx。

现在删除在edmx的.tt下以您的过程命名的cs相关文件

如果现在从设计器中正常打开.edmx,单击它,然后按Ctrl + s,则可以验证该过程是否不再映射。如果仍将其映射,则会重新创建。

答案 1 :(得分:0)

模型浏览器中的三个位置需要删除对象以完全删除存储过程。 1.存储过程/函数文件夹 2.功能导入文件夹 3.复杂类型文件夹

答案 2 :(得分:0)

我最近在 EF 更新向导上发现了“刷新”和“删除”选项卡。添加选项卡是您通常看到的,但旁边是刷新和删除选项卡。 “刷新”选项卡使用起来非常快速且简单。 ;)