【问题标题】:Adding stored procedure to DBML doesn't generate *.designer.cs code向 DBML 添加存储过程不会生成 *.designer.cs 代码
【发布时间】:2014-07-18 14:46:37
【问题描述】:

我正在尝试使用 Visual Studio 2008 向我的 Asp.Net 网站添加一个新的存储过程,就像我前一段时间所做的那样,但这不会在 *.designer.cs 中生成任何代码,当我尝试调用 SP,我只是得到一个未定义/未找到的错误。

这是我到目前为止所做的:

  1. 确保我具有对MyApp.dbmlMyApp.dbml.layoutMyApp.designer.css 的读/写访问权限
  2. 打开 DBML(以“图形”模式)
  3. 刷新服务器资源管理器中的 SP 列表
  4. 将目标 SP 拖放到 DBML 上
  5. 保存
  6. 建立网站

DBML 中的 XML 是使用结果的每一列的正确类型创建的,但在 Designer.cs 中绝对没有创建任何内容。

  • 我检查了,没有像 this person 那样创建“新”designer.cs。
  • 我尝试在删除或不删除 MyApp.designer.cs 的情况下使用“运行自定义工具”(as suggested here),但它什么也没做

有人知道问题可能出在哪里吗?我错过了什么吗?

【问题讨论】:

  • 如果你在一个新的空白项目中做同样的事情,会发生什么?
  • 在使用新 DBML 的新项目中,它可以完美运行。谢谢。如果我在我的主项目中找不到什么不起作用,我将复制/粘贴生成的代码。

标签: c# asp.net visual-studio-2008 linq-to-sql


【解决方案1】:

由于似乎没有其他方法起作用,我使用了 Pleun 的想法,它就像一个魅力:

  1. 使用全新的 DBML 创建一个新的空 Asp.Net 网站
  2. 将我的 SP 导入到这个新的 DBML 中
  3. 将生成的代码从新的空项目复制到我的旧项目(这些代码部分很容易发现,因为它们是唯一提到我的 SP 的部分)
    1. MyApp.dbml 中的 XML
    2. MyApp.designer.cs 中的 Csharp(调用 SP 的方法 + 带有 SP 结果访问器的部分类)
  4. 构建我的“旧”项目

事实上,我必须关闭并重新打开 VS 才能完全正常工作。

【讨论】:

    【解决方案2】:

    即使我遇到过同样的情况,我也试过这个希望它适用于某人 转到包含 dbml 的文件夹并右键单击它,如果选择只读,则在属性中取消选中它。 现在当 dbml 文件更新时,设计器会自动更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 2013-06-12
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多