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

时间:2012-04-30 14:22:16

标签: sql-server visual-studio-2010 linq-to-sql stored-procedures

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

我正在关注指南,例如this onethis one.

这两个步骤都有相同的基本步骤。

  1. 将LINQ to SQL .dbml项添加到我的项目
  2. 连接到服务器资源管理器中的数据库
  3. 将存储过程从服务器资源管理器拖到我的.dbml设计器窗口
  4. 但第3步不起作用。我有我的存储过程和设计器窗口,但我无法拖动sproc。我没有加号或“不允许”的标志。它只是一个不可拖动的对象。

    我找不到另一种方法将我的sproc添加到.dbml文件中。我找不到有这个问题的其他人。每个消息来源都只是说要拖过它。

    我在这里做错了什么?

    截图:

    enter image description here

4 个答案:

答案 0 :(得分:19)

事实证明,解决方案是我使用了错误版本的.dll for Visual Studio。

我注意到在服务器资源管理器中执行操作时遇到异常。谷歌搜索异常导致this question指向此dll

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

作为问题。

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

答案 1 :(得分:3)

我还安装了VS 11 Beta,设计师工作正常,直到我卸载它。我必须在上述位置手动删除DLL并通过在“程序和功能”中查找Visual Studio 2010并选择“卸载/更改”然后选择“修复”来修复安装。安装程序将替换使用正确版本删除的DLL文件。

答案 2 :(得分:3)

对于任何可以拖动sproc,但看不到结果的人(sproc根本没有显示在函数窗格中):确保sproc只返回L2S理解的数据类型。例如,您无法返回geography字段。

答案 3 :(得分:0)

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