我通过linq-to-SQL公开了几个存储过程。过了一段时间,我意识到我还需要这些过程返回的一列,所以我更改了这些过程,在设计记事本中删除了它们,然后再次拖动。
我确实在所有过程中都看到了新列,除了一个——它的helper类根本没有改变。当我直接执行该存储过程时,我确实看到了新列。
我错过了什么?关闭和重新开放VS没有帮助。清洗溶液也没有帮助。唯一有效的解决方法是重命名过程。这是一个bug在linq-to-sql还是我错过了什么?
TIA
我以前也遇到过这种情况。我发现最快的方法是放弃SP尝试构建(假设您在某个地方引用它),这将导致构建错误。然后当你重新加入SP并进行重建时它会重写元数据
是的,设计人员非常挑剔,特别是对于存储过程。如果名称和输出字段相同,它实际上不会刷新存储过程的元数据,因为它只关心调用什么和期望返回什么。存储过程逻辑与L2S无关。
确认您在服务器资源管理器中看到了更改,特别是进程的输出字段(您可能必须在服务器资源管理器中刷新以使其出现),然后重新导入并再次编译。
应该可以。
有时vs studio缓存它们,刷新不起作用,尝试重新启动vs studio删除和拖动它们。