【发布时间】:2014-11-30 15:31:29
【问题描述】:
使用 VS 2013 (VB) 和 SQL Server 2012。
我执行一个存储过程来使用 linq 填充一个网格视图。
Dim db As New GMConnectionDataContext
Dim gasHedges = db.GasHedges_create2ndMonth.ToList
存储过程返回一个结果集,并且工作正常,因为它返回了预期的结果,gridview 显示为所需的。
我在我的 SQL 表中添加了一些数据并加载了网页,但没有显示新数据。如果我在 SQL Server 中执行存储过程,则会显示新数据。如果我在 VS 中执行存储过程,则会显示新数据。
现在有点奇怪。如果我从.dbml 文件中删除对存储过程的引用,然后重新添加它,新数据会在页面加载时显示。我知道在使用此文件时,如果我将列添加到表中,则需要将其删除并将表重新添加到 .dbml 文件中。
存储过程当然不是这样,因为它们将无法使用。有什么我遗漏的吗?
更新
我想我知道为什么会发生这种情况,但我不知道如何解决它。当我在 SQL 中使用 pivot 命令时,SQL 结果集具有动态列。这意味着如果用户创建了一家新的 Gas 公司,结果集将有另一列,并且 datacontext 必须将其解释为 SP 已更改并仍显示旧数据集。这确实意味着我不能只从数据上下文中删除 SP 并重新添加它,因为如果用户添加另一家公司,Web 应用程序需要处理。
【问题讨论】:
标签: sql sql-server vb.net linq stored-procedures