实体模型框架没有正确更新

时间:2016-06-01 05:40:01

标签: .net sql-server entity-framework

我正在使用nuget的最新实体框架,但是当DB更改时,实体映射仍然无法正常工作。我正在做的程序:

  1. 使用DB表在代码中设置同步实体模型。
  2. 更改表格中某些字段的数据类型。
  3. 从DB更新实体模型。
  4. 新数据类型未更新。
  5. 还有一些其他方案无效,数据库更改未反映到实体模型。我已经阅读了一些文章,并认识到这些可能已知问题。但是,是否有解决这些问题的通用解决方案?现在我必须手动更改实体模型源代码中的数据类型。是否有一些配置更改可以帮助实体同步更准确?

1 个答案:

答案 0 :(得分:0)

我发现Visual Studio当然能够检测到已更新的列的数据类型不匹配。这就是我在"错误列表"中看到跟随错误的原因。窗口如下。我在我的数据库的Int表中将Salary列的数据类型从nchar(10)更改为Employee

Error 2019: Member Mapping specified is not valid. The type 'Edm.Int32[Nullable=False,DefaultValue=]' of member 'Salary' in type 'DbFirstTpccModel.Employee' is not compatible with 'SqlServer.nchar[Nullable=False,DefaultValue=,MaxLength=10,Unicode=True,FixedLength=True]' of member 'Salary' in type 'DbFirstTpccModel.Store.Employee'.

因此,要通过更新模型向导解决此问题,通过该向导检测数据类型更改,最好从模型设计器中删除相应的实体,然后通过更新模型向导重新添加表。