如果我使用“存储过程”文件夹中的Visual Studio Server资源管理器定义存储过程myStoredProcedure
,那么我将转到.edmx
更新模型。
我可以在后面的代码中使用myStoredProcedure
,并且可以被IntelliSense检测到,并且工作正常。
当我从数据库和myStoredProcedure
模型中删除.edmx
时。
它仍然由IntelliSense检测到。即使它在服务器资源管理器中也没有跟踪 - > “存储的Prodecures”文件夹也不在.emdx
“存储过程/函数”文件夹中。
使用时没有显示编译错误,但运行时错误(当然是预期的)。
无法执行函数import'DataEntities.myStoredProcedure',因为它未映射到存储函数。
如果我在数据库中再次重新定义myStoredProcedure
- >服务器资源管理器 - > “存储的Prodecures”,并更新.edmx
模型。 IntelliSense检测到两个:
myStoredProcedure
- >这是旧的,并导致运行时错误。 myStoredProcedure1
- >这是新的,工作正常。那么如何从DataEntities.edmx
?
答案 0 :(得分:1)
右键单击edmx->使用...打开-> XML(文本)编辑器->查找并删除所有引用过程名称的相关xml块。
确保找到并删除与之相关的所有内容。
如果您的过程带有后缀_Result,还搜索不带后缀的所有内容,并同时删除所有引用它的xml块。
然后按Ctrl + S保存edmx。
现在删除在edmx的.tt下以您的过程命名的cs相关文件
如果现在从设计器中正常打开.edmx,单击它,然后按Ctrl + s,则可以验证该过程是否不再映射。如果仍将其映射,则会重新创建。
答案 1 :(得分:0)
模型浏览器中的三个位置需要删除对象以完全删除存储过程。 1.存储过程/函数文件夹 2.功能导入文件夹 3.复杂类型文件夹
答案 2 :(得分:0)
我最近在 EF 更新向导上发现了“刷新”和“删除”选项卡。添加选项卡是您通常看到的,但旁边是刷新和删除选项卡。 “刷新”选项卡使用起来非常快速且简单。 ;)