0
如果一个表的列名称与表名称相同,则EDMX生成器将列名称后缀为“1”。例如:在下面的示例中将Test更改为Test1。如何停止更改列名称的EDMX生成器
SQL Server表中定义:
CREATE创建的表[DBO] [测试]( [测试] NCHAR NOT NULL, [ColumnsTwo] NCHAR NULL,
EF型号:
<EntitySetMapping Name="Test">
<EntityTypeMapping TypeName="AdventureWorksModel.Test">
<MappingFragment StoreEntitySet="Test">
<ScalarProperty Name="ColumnsTwo" ColumnName="ColumnsTwo" />
<ScalarProperty Name="Test1" ColumnName="Test" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
</EntityContainerMapping>
这会导致SqlQueries抛出错误“数据读取器与指定的'AdventureWorksModel.Test'不兼容。'Test1'类型的成员在数据读取器中没有相应的列,名称相同。 “
为什么DbContext生成器修改列名称? ObjectContext生成器使它们独立。
我们该如何解决这个问题?我们无法控制数据库模式。
这应该与DbContext生成器无关。它在EDMX发生器内部。我想前者的行为是在VS2010中,而新的行为在VS2012中,不是吗? –
可能。我会检查我的办公室。它为什么这样做?我该如何解决这个问题? –
我也发生在VS 2010上。也许EDMX生成器总是在列名称=表名称时更改列名称。有人知道解决方法吗? –