无法将存储过程拖放到dbml设计器上

20

我正在尝试从C#应用程序简单调用数据库存储过程。

我遵循类似于这个或者这个的指南。

这两个指南都有相同的基本步骤:

  1. 向我的项目添加一个LINQ到SQL .dbml项
  2. 在服务器资源管理器中连接到数据库
  3. 将存储过程从服务器资源管理器拖放到我的.dbml设计师窗口中

但是第三步不起作用。我有我的存储过程和我的设计师窗口,但是我不能拖动存储过程。我没有加号或“不允许”符号。它只是一个不可拖动的对象。

我找不到另一种方法将我的存储过程添加到.dbml文件中。我也找不到任何其他遇到这个问题的人。每个来源都只是说要拖动它。

我可能做错了什么?

截图:

enter image description here


@Andomar 我已经发布了我所能看到的内容。我不知道如何捕捉光标。PrintScreen似乎无法捕捉它,而且我认为我不能使用Snipping Tool来做到这一点。无论如何,它实际上不会显示任何东西,因为我实际上无法将sproc拖动到任何地方。它只是看起来像我的光标悬停在.dbml窗口上,但实际上我正在点击和拖动。 - Kris Harper
这正是我的屏幕看起来的样子。对我而言,即使DBML文件是只读的,它也能正常工作。您是否已经本地登录?您和VS是否在同一个管理员帐户下运行? - Andomar
是的,我已经本地登录,并且VS正在使用相同的账户运行。我还使用相同的Windows凭据连接到远程SQL服务器。 - Kris Harper
你尝试过重启吗?禁用病毒扫描器了吗?是否有其他正在与剪贴板交互的应用程序? - Andomar
@Andomar 我找到了问题所在。我使用了错误版本的dll文件。我已经将解决方案发布为答案。感谢您的帮助。 - Kris Harper
4个回答

20

结果发现我的Visual Studio中有一个.dll的版本错误。

我注意到在Server Explorer中执行操作时会出现异常。谷歌搜索异常导致我找到了这个问题,它指向了这个dll。

C:\Program Files (x86)\Common Files\microsoft shared\Visual Database Tools\dsref80.dll

这是一个问题。

我用其中一位队友的相应副本替换了它,现在它能正常工作了。


对我来说,这是来自 Microsoft Visual Studio Beta 11 的文件版本 11.0.50214.1。我已经卸载了它,但它并没有恢复到之前的版本。使用来自 Microsoft Visual Studio 2010 的版本 10.0.30319.1 进行替换(我有 SP1,不确定是否与没有 SP1 的版本相同)解决了问题。 - casperOne
@casperOne 对我来说也是一样。我本应该为beta使用一个镜像,但我相信卸载会很干净。实际上,在Visual Studio 11卸载后,Microsoft Shared目录中有很多东西应该被还原,但并没有。 - Kris Harper
这难道不是我们的失败吗?我们本应该为beta软件制作一个图像,但我们没有做到?=) - casperOne
谢谢,使用10.0.30319.1版本的dsref80.dll替换11.0.50214.1版本,同样为我解决了这个问题。 - BrandonAGr
这是我在安装了VSE for Web之后安装VSE for Desktop后发生的。我不知道是否是这个原因,但删除文件并修复解决了问题。 - Aharon Manne

3

对于那些可以拖动存储过程但没有结果的人(存储过程在函数面板中根本没有显示):请确保存储过程仅返回L2S能够理解的数据类型。例如,您不能返回一个地理字段。


我的存储过程没有返回任何内容,反而它不会在函数窗格中显示... - Franziee
在我的情况下,我声明了一个Table类型。L2S也不喜欢这样。看起来我得传递一个分隔的字符串。 - AER

3

我之前安装了VS 11 Beta,设计器运行良好,但是在卸载后出现问题。我不得不手动删除上述位置的DLL文件,并通过在“程序和功能”中找到Visual Studio 2010并选择“卸载/更改”,然后进行修复来解决问题。安装程序将用正确的版本替换已删除的DLL文件。


1
使用设计师界面编辑 .dbml 文件需要 LINQ to SQL 工具,这些工具不会作为 Visual Studio 2017 的任何工作负载的默认部分安装。可以通过在 Visual Studio 安装程序的“个别组件”选项卡中选择“代码工具”类别下的“LINQ to SQL 工具”项目进行安装。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接