【问题标题】:LINQ entity data model generated code error - The type 'DBContexts.Category' already contains a definition for 'ID'LINQ 实体数据模型生成的代码错误 - 类型“DBContexts.Category”已包含“ID”的定义
【发布时间】:2010-01-27 11:11:07
【问题描述】:

我的数据库中有两个表 - 类别和部门,它们都包含相同的列 - 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 列并没有出现问题。

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

干杯

【问题讨论】:

    标签: c# .net linq linq-to-sql entity-model


    【解决方案1】:

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

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

    【讨论】:

    • 不错的一个!我有另一个数据库的第二个上下文,该数据库也有一个带有 ID 和名称的类别表 - 不知何故我忘记了这一点。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多