【问题标题】:Linq to SQL creating duplicate designer filesLinq to SQL 创建重复的设计器文件
【发布时间】:2015-04-22 23:48:25
【问题描述】:

我的 Linq to SQL DBML 文件有一个奇怪的错误,当我保存它时,会创建一个重复的文件,而不是保存到现有的设计器文件。

由于 file.designer.cs 和 file1.designer.cs 内部的数据上下文构造函数之间存在歧义,这会导致整个地方的错误

有什么方法可以修复这个不涉及删除和重新创建 dmbl 文件的错误。因为这个错误发生在我所有的 DBML 文件中,其中一些文件相当大。

上图显示了我遇到的问题。

【问题讨论】:

  • 我想知道...这可能与 VCS 有关吗?该文件可能是只读的吗?
  • 刚刚检查,文件不是只读的。删除两个设计器文件并重建 dbml 只剩下 1 个设计器文件,它可以工作,但它仍然是 minerva1.designer.cs 似乎无法删除“1”
  • 耐人​​寻味;如果你为“Minerva1”做一个在文件中查找,也许会出现一些东西? (例如,也许它在 dbml 中是明确的)

标签: c# linq-to-sql


【解决方案1】:

不确定是什么原因造成的(但 Marc 关于文件为只读或未检出的建议似乎是可能的),但 .proj 文件中描述了该关联。如果您使用文本编辑器打开该文件,您应该会在某处看到如下内容:

<ItemGroup>
<None Include="Minerva.dbml">
  <Generator>MSLinqToSQLGenerator</Generator>
  <LastGenOutput>Minerva1.designer.cs</LastGenOutput>
  <SubType>Designer</SubType>
</None>

Minerva1.designer.cs 替换为Minerva.designer.cs。您现在可以从项目中删除或排除 Minerva1.designer.cs 文件,下次调用生成器时,它将按预期覆盖 Minerva.designer.cs

【讨论】:

  • 当我在另一个项目中添加数据库模型作为 LINK 时遇到了同样的问题,我解决了你在第二个项目的 .proj 文件中所说的问题。谢谢你:)
  • 这也是我的问题。它发生在我连接到与设计器关联的数据库的另一个实例之后,然后将一些新表拖到设计器上并保存。更改 .proj 文件修复了它。
【解决方案2】:

我遇到了同样的问题。事实证明,版本控制正在保存该文件。构建过程无法重新创建文件,因此它会创建一个新文件。由于此文件是自动生成的,因此可以安全地从版本控制中删除。我正在使用 git 进行版本控制。

【讨论】:

  • Grrrr... 你说的完全正确。有时VS2013会检出.dbml文件,而不是designer.cs文件......然后会创建额外的designer.cs文件。感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多