我通过linq-to-SQL暴露了几个存储过程。一段时间后,我意识到我需要再由这些程序返回一列,所以我更改了程序,在设计板中删除了它们,然后再次拖动。
我确实看到我的所有程序中都暴露了新列,除了一个 - 它的助手类根本没有改变。当我直接执行该存储过程时,我确实看到了新列。
我错过了什么?关闭并重新开启VS并没有帮助。清洁解决方案也没有帮助。实际工作的唯一解决方法是重命名该过程。这是linq-to-sql中的错误还是我错过了什么?
TIA
答案 0 :(得分:3)
我之前也遇到了这个问题。我发现最快的方法是删除SP尝试构建(假设你在某处引用它)它将导致构建错误。然后,当您重新添加SP并进行重建时,它将重新编写元数据
答案 1 :(得分:0)
是的,设计师非常挑剔,尤其是存储过程。如果名称和输出字段相同,则它实际上不会刷新存储过程的元数据,因为它所关心的是要调用的内容和预期的内容。存储过程逻辑与L2S无关。
确认您看到服务器资源管理器中的更改,特别是proc的输出字段(您可能必须在服务器资源管理器中刷新以使其显示),然后重新导入并再次编译。
那应该工作。
答案 2 :(得分:0)
有些时候vs studio会缓存它们并且刷新什么都不做,尝试重新启动vs studio删除并再次拖入它们。