【发布时间】:2015-04-25 05:34:29
【问题描述】:
如果我在“Stored Procedures”文件夹中使用 Visual Studio Server Explorer 定义了一个存储过程 myStoredProcedure,那么我会转到 .edmx 来更新模型。
我可以在后面的代码中使用myStoredProcedure,并且可以被 IntelliSense 检测到,并且工作正常。
当我从数据库和 .edmx 模型中删除 myStoredProcedure 时。
IntelliSense 仍会检测到它。即使它在 Server Explorer -> "Stored Procedures" 文件夹和 .emdx "Stored Procedures / Functions" 文件夹中都没有踪迹。
使用时没有显示编译错误,但运行时错误(当然是预期的)。
函数 import 'DataEntities.myStoredProcedure' 无法执行,因为它没有映射到存储函数。
如果我在数据库 -> 服务器资源管理器 -> “存储过程”中再次重新定义 myStoredProcedure,并更新 .edmx 模型。 IntelliSense 检测到两个:
-
myStoredProcedure-> 这是旧的,会导致运行时错误。 -
myStoredProcedure1-> 这是新的,工作正常。
那么如何正确地从DataEntities.edmx中删除一个存储过程呢?
【问题讨论】:
-
您需要删除模型浏览器中的过程并重新生成代码(如果它没有自动发生)。服务器资源管理器未连接到 EF 设计器,从那里删除任何内容都不会更新您的模型(反之亦然)。
-
@Pawel 我在问题中已经说过,我从服务器资源管理器中的数据库和 .edmx 模型中删除了该过程。
标签: entity-framework stored-procedures