Linq-to-SQL无法反映一个存储过程中的更改

时间:2011-04-06 02:58:00

标签: c# .net linq linq-to-sql stored-procedures

我通过linq-to-SQL暴露了几个存储过程。一段时间后,我意识到我需要再由这些程序返回一列,所以我更改了程序,在设计板中删除了它们,然后再次拖动。

我确实看到我的所有程序中都暴露了新列,除了一个 - 它的助手类根本没有改变。当我直接执行该存储过程时,我确实看到了新列。

我错过了什么?关闭并重新开启VS并没有帮助。清洁解决方案也没有帮助。实际工作的唯一解决方法是重命名该过程。这是linq-to-sql中的错误还是我错过了什么?

TIA

3 个答案:

答案 0 :(得分:3)

我之前也遇到了这个问题。我发现最快的方法是删除SP尝试构建(假设你在某处引用它)它将导致构建错误。然后,当您重新添加SP并进行重建时,它将重新编写元数据

答案 1 :(得分:0)

是的,设计师非常挑剔,尤其是存储过程。如果名称和输出字段相同,则它实际上不会刷新存储过程的元数据,因为它所关心的是要调用的内容和预期的内容。存储过程逻辑与L2S无关。

确认您看到服务器资源管理器中的更改,特别是proc的输出字段(您可能必须在服务器资源管理器中刷新以使其显示),然后重新导入并再次编译。

那应该工作。

答案 2 :(得分:0)

有些时候vs studio会缓存它们并且刷新什么都不做,尝试重新启动vs studio删除并再次拖入它们。