10

在对实体模型进行小幅更改并尝试重新编译后,每次引用实体模型中的属性时,都会出现“'XYZ.EntityX.PropertyX' 和 'XYZ.EntityX.PropertyX' 之间的歧义”错误。在每种情况下,这两个属性都是相同的。还有很多“类型'XYZ.EntityX'已经包含'PropertyX'的定义”。有没有人遇到过这样的事情?

我最近将代码放入源代码安全中,我会大胆猜测并说可能与它有关。也许它不能更新一个没有签出的文件,也没有提示它?我不知道。

我所做的只是进入 XYZModel.edmx,选择一个表,添加一个标量属性(字符串,50 个字符,可为空)并重新编译。在那之前一切正常。当我“从数据库更新模型”时也会发生这种情况。我猜对模型的任何改变都会导致它。

4

4 回答 4

7

我在 Visual Studio 2015 中遇到了完全相同的问题,但我使用了 TFS 而不是 Sourcesafe。

第一个选项是确保您已连接到源代码管理(在线)。

如果这不起作用

  1. 确保您的 Visual Studio 解决方案已连接到 TFS/源代码管理。当您使用离线模式时,可能会出现此问题。如果您处于离线状态,请右键单击解决方案并选择联机。
  2. 在 Visual Studio 中在线连接到 TFS 后,右键单击 edmx 并选择 Goto Source Control->Undo Pending changes。这将撤消 edmx 和相关生成文件的所有未决更改。
  3. 从 edmx 中删除更改的表并重新添加。
  4. 构建您的解决方案
于 2015-09-09T06:12:12.307 回答
2

我有同样的问题。由于某种原因,在更新我的实体框架模型时,它创建了第二个 Model.Context.cs 文件。

这似乎是因为原来的模型与模型脱节了,它必须创建一个新模型。我删除了原来的那个,它解决了这个问题。

这些 .cs 文件应该在解决方案资源管理器中可见,方法是找到展开的 Model.edmx,然后找到并展开 Context.tt 文件。

于 2018-02-14T12:28:01.730 回答
1

刚才遇到了同样的错误,我发现我已经将类复制到一个新文件夹并且没有更改它们的名称。

我有一个文件夹名称GroupCity然后我将类从复制GroupCity何时Group,并且City在我收到错误的 appservice 上引用了文件夹。

于 2018-05-10T13:33:37.513 回答
0

我认为您将某些文件移动或复制到其他文件夹,因此它们会出现此错误!

于 2016-12-17T10:15:50.267 回答