使用Entity Framework更新表时,我收到错误:“无法更新标识列...”

时间:2016-10-30 22:38:31

标签: mysql asp.net entity-framework

使用visual Studio 2012 v.11 update 4 .Net 4.5.5x

我试图简单地从Gridview界面更新我的数据库中的表,我得到上述错误。 我的字段是整数自动增量标识字段,但我的PK是ID列,即GUID。 问题是为什么entityframework会尝试更新在其属性中设置为“identity”的DB中的字段?

尝试从同一网格视图控件中插入或删除同一个表上的记录时,我没有收到任何错误 tnx提前。

1 个答案:

答案 0 :(得分:0)

有两种可能性:

  第一:你不小心更新了PK。这是可能的,因为您的PK是您提到的GUID。

     

第二名:EF假设必须为记录创建PK。

第一种方案的解决方案是跟踪过程以查看意外创建PK的位置。如果是第二种情况,请在DbContext

中的PK上使用以下内容
 .ValueGeneratedNever(); // EF Core 
  Example:
  entity.Property(e => e.PK).ValueGeneratedNever();

OR

[DatabaseGenerated(DatabaseGeneratedOption.None)] EF6
public GUID PK {get; set;}