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生成器總是在列名稱=表名稱時更改列名稱。有人知道解決方法嗎? –