将存储过程添加到DBML不会生成* .designer.cs代码

时间:2014-07-18 14:46:37

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

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

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

  1. 确保我对MyApp.dbmlMyApp.dbml.layoutMyApp.designer.css
  2. 具有读/写权限
  3. 打开DBML(以“图形”模式)
  4. 刷新服务器资源管理器中的SP列表
  5. 将目标SP拖放到DBML上
  6. 保存
  7. 建立网站
  8. DBML中的XML是使用结果的每一列的正确类型创建的,但在designer.cs中绝对没有创建任何内容。

    • 我检查过,并没有像this person那样创建“new”designer.cs。
    • 我尝试使用“运行自定义工具”(as suggested here),无论是否删除MyApp.designer.cs,它都没有做任何事情

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

2 个答案:

答案 0 :(得分:0)

由于似乎没有其他工作,我使用了Pleun的想法,这个想法很有魅力:

  1. 使用全新的DBML创建一个新的空Asp.Net网站
  2. 将我的SP导入此新DBML
  3. 将生成的代码从新的空项目复制到我的旧项目(代码的这些部分很容易被发现,因为它们是唯一提到我的SP的代码)
    1. MyApp.dbml
    2. 中的XML
    3. MyApp.designer.cs中的Csharp(调用SP的方法+带有SP结果访问器的分部类)
  4. 建立我的" old"项目
  5. 事实上,我必须关闭并重新打开VS才能完全正常工作。

答案 1 :(得分:0)

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