以下是我收到的错误消息:
存储更新,插入或删除语句会影响意外的行数(0)。自实体加载后,实体可能已被修改或删除。有关理解和处理乐观并发异常的信息,请参阅http://go.microsoft.com/fwlink/?LinkId=472540。
我的模型由几列组成,其中两列构成了主键聚类:
[Key]
[Column(Order = 0)]
public string SourceName { get; set; }
[Key]
[Column(Order = 1)]
public string SourceType { get; set; }
使用实体框架更新的代码:
_Entities.SourceInfoes.Attach(entity);
_Entities.Entry(entity).State = EntityState.Modified;
_Entities.SaveChanges();
有人可以帮我解决上面的例外情况吗?
答案 0 :(得分:0)
在保存更改之前,您确定所有非null属性都有值吗?
在我的情况下,我不得不在视图中添加隐藏值,因此主键将被发布回服务器。
@Html.HiddenFor(model => model.Id)
答案 1 :(得分:0)
对我来说,问题是数据库中某些列的唯一索引。违反索引导致显示此错误。
但是当我搜索解决方案时,我发现还有其他原因也会导致此错误,例如,确保键具有值且不为null,请检查列的并发设置。