【问题标题】:My O/R Designer keeps deleting the designer.cs file!我的 O/R Designer 不断删除 Designer.cs 文件!
【发布时间】:2009-06-08 09:24:05
【问题描述】:

我有一个奇怪的问题,有时当我使用 O/R 设计器(通常通过添加我在数据库中添加的字段)对 Linq 对象进行更改时,当我保存项目时,设计器。 cs 文件被删除!

幸运的是,我可以依靠源代码控制;我取消删除文件并取消对 csproj 文件的更改。但这真的很烦人,而且似乎没有任何充分的理由(我的项目包含大约 100 个对象这一事实并不是借口)。

有没有其他人遇到过这个问题?知道什么可能导致这种情况发生吗?

编辑 - 附加信息 - 我的 DataContext 类设置有自定义基类。你认为这可能与它有关...?

【问题讨论】:

  • 跟SC没关系,为什么会这样?

标签: c# visual-studio-2008 linq linq-to-sql or-designer


【解决方案1】:

您是否添加了部分类以向生成的类添加功能(等)?如果是这样 - 虽然听起来很奇怪,但您的部分类文件中任何 using 语句的位置实际上可能是一个中断代码生成的问题。尝试将它们移动到命名空间内。

不,我不是在开玩笑。

这种情况下的错误消息是“自定义工具 'MSLinqToSQLGenerator' 失败。未指定的错误”。更改自:

using System;
namespace MyNamespace {
    partial class MyDataContext {}
}

到:

namespace MyNamespace {
    using System; 
    partial class MyDataContext {}
}

修复它。怪异的错误。

【讨论】:

  • 是的,我到处都在使用部分类!我对重新定位“使用”语句可能会产生任何影响的想法感到惊讶......你能提供更多细节吗?
  • 好吧,我已经给出了一个完整的例子,我在发布之前在我的机器上进行了验证......请注意,一旦失败,您需要再次调整 dbml(将属性从 Foo 重命名为 Foo2并返回 Foo,例如)在它起作用之前。
  • 哦 - 它似乎只发生在同名文件中......即,如果您有 MyDataClasses.dbml,请查看 MyDataClasses.cs(MyDataClasses.designer.cs 的孪生兄弟)跨度>
  • 查看我的编辑 - 我误解了原来的问题。我只对数据类使用部分类——但我的数据上下文有一个自定义基类。认为这可能是问题的根源?
【解决方案2】:

在处理大数据集时,我遇到了与数据集设计器类似的问题。您无需使用源代码控制系统取消删除该文件:只需将您的工作保存在设计器中即可重新生成 .designer.cs 文件。也可以右键文件,选择“运行自定义工具”,效果一样。

【讨论】:

    【解决方案3】:

    现在判断可能还为时过早,因为行为不稳定,但在我看来,如果我在 .dbml 文件上进行更改时在 IDE 编辑器中保持 Designer.cs 文件处于打开状态,那么它不会当我点击“保存”时不会被删除。

    我已经尝试了几次,它似乎有效...没有很好的解释为什么会这样,但是问题也不是可以接受逻辑审查的问题...

    稍后...

    已经尝试了几次,我可以说这始终有效,所以我将其标记为答案!

    感谢大家的帮助!

    【讨论】:

      【解决方案4】:

      每次更改和保存原始 O/R 设计器文件时,Visual Studio 都应启动生成 *.designer.cs 文件的自定义工具。 因此,它可能会以在创建新文件之前首先删除旧的 *.designer.cs 文件的方式工作。如果不新建,就是自定义工具有问题。

      【讨论】:

        【解决方案5】:

        我刚刚遇到了同样的问题,Marc 的建议让我克服了自定义工具错误。但是 .designer.cs 文件仍然被删除。

        我注意到,如果我更改 DBML 并关闭 DBML(它要求保存,我选择是),它将删除 designer.cs 文件。如果我不关闭 DBML,而是告诉它立即构建,它似乎会重新生成 .designer.cs 文件并编译没有问题。

        然后我可以关闭 DBML,一切都很好。

        非常奇怪的互动。一位同事也遇到了与上述 Shaul 报告的类似问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-18
          • 2016-04-12
          相关资源
          最近更新 更多