我有一个 wpf 项目 4.5,我正在使用 EF 5 生成模型类。我想为生成的 EF 类实现 iNotifyPropertyChanged。所以我右键单击我的设计器(visual studio 2012)并将代码生成设置从“无”更改为“默认”
一旦我这样做了,我就会遇到数百个错误,如下所示:
错误 67 '公共属性"TableColumnName"因为"ColumnType"有多个具有相同签名的定义。
[编辑 1]
这些错误都在 DataModel.Designer.Vb 文件中引发。它们出现在与另一个表中的列/导航属性同名的任何表列属性或导航属性上。我很难相信我不能在不同的表中拥有相同名称的列,这里肯定发生了其他事情。
[编辑 2]
所以我从设计器中删除了我所有的数据库对象,然后将代码生成策略更改为默认策略,然后在图表中添加了一个表(客户端)。对于表的每个属性,我都会遇到很多错误(所以这一定不是因为其他表具有与我之前认为的相同的列名)。我在每个属性(表列)上都收到上面列出的错误,以及每个属性的以下错误:
错误变量“_ColumnName”与为“client”类中的属性“ColumnName”隐式声明的成员冲突。C:...\FTC_DAL.Designer.vb
当我将代码生成恢复为无时,这种情况就消失了。我开始认为这是 EF 5 中的一个错误。
[编辑 3]
重现步骤:
- 在 Visual Studio 2012、wpf 应用程序中创建新项目。
它可以是vb或c,我都测试过 - 添加 ADO.NET 实体数据模型(edmx 文件)
- 从 sql server 添加表(我使用的是 express 2008 R2)
- 构建项目,然后在空白处单击 edmx 设计器。在属性窗口中,将代码生成策略更改为default而不是none。
- 构建项目,将出现错误。
我在用:
- 视觉工作室 2012 专业版 v.11.0.51106.01 更新 1
- .NET 4.5.50709
- 视窗 8 专业版
我将安装 sql server 2012 express 看看这是否有什么不同
有人可以帮我弄清楚为什么会发生这些错误。
谢谢