【问题标题】:Linq-to-SQL fails to reflect changes in one stored procedureLinq-to-SQL 无法反映一个存储过程中的更改
【发布时间】:2011-04-06 02:58:00
【问题描述】:

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

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

我错过了什么?关闭和重新打开 VS 没有帮助。清洗溶液也无济于事。唯一有效的解决方法是重命名该过程。这是 linq-to-sql 中的错误还是我遗漏了什么?

TIA

【问题讨论】:

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


    【解决方案1】:

    我以前也遇到过。我发现的最快方法是放弃 SP 尝试构建(假设您在某处引用它)它会导致构建错误。然后,当您重新添加 SP 并进行重建时,它将重新写入元数据

    【讨论】:

      【解决方案2】:

      是的,设计师非常挑剔,尤其是存储过程。如果名称和输出字段相同,它实际上不会刷新存储过程的元数据,因为它只关心调用什么以及期望返回什么。存储过程逻辑与 L2S 无关。

      确认您在服务器资源管理器中看到了更改,尤其是 proc 的输出字段(您可能需要在服务器资源管理器中进行刷新才能使其显示),然后重新导入并再次编译。

      那么应该可以了。

      【讨论】:

      • 我的输出字段不一样,这是我改变的目标。重新导入没有帮助。谢谢!
      • 是的,这就是我要说的。服务器资源管理器看不到您添加的新字段。您需要对 proc 进行更改,刷新服务器资源管理器并将 proc 重新带入。然后元数据将被正确重新创建。
      • 刷新和重新导入对我的 proc 不起作用 - 我仍然看不到我的新专栏。谢谢!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        • 1970-01-01
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多