1

我的数据库中有两个表 - 类别和部门,它们都包含相同的列 - ID、名称和代码。

我可以使用 Visual Studio 2008 设计器创建一个新的实体模型并添加部门,它工作正常 - 我可以使用 LINQ 查询数据库,一切都很好。

当我更新模型并添加类别表时,生成的代码在我尝试编译时会引发以下错误。

The type 'DBContexts.Category' already contains a definition for 'ID'
The type 'DBContexts.Category' already contains a definition for '_ID'

The type 'DBContexts.Category' already contains a definition for 'Name'
The type 'DBContexts.Category' already contains a definition for '_Name'

A partial method may not have multiple defining declarations

我想这与 Department 和 Category 具有相同的列名这一事实有关 - 但 Code 列并没有出现问题。

有什么想法可以解决这个问题吗?我真的不能乱搞生成的代码,因为如果我更新模型,任何更改都会被删除。

干杯

4

1 回答 1

8

当您更新 .dbml 文件时,也会重新生成 .designer.cs 文件,但如果无法访问此文件,则会生成一个新文件并将其添加到项目中。由于两个文件中的类都是部分的,但在编译时具有相同的属性和字段,您将收到此错误。

您可以检查您是否只有一个设计器为您的上下文生成的文件。您可以通过右键单击您的类的名称并选择“转到定义”来做到这一点 - 它会显示包含您的类定义的所有文件。

于 2010-01-27T11:20:50.317 回答