EF 6 Store更新,插入或删除语句影响了意外的行数(0)

时间:2015-07-08 15:25:44

标签: c# entity-framework

当我尝试保存对我的两个实体的上下文所做的更改时,我收到以下错误。

  

存储更新,插入或删除语句会影响意外   行数(0)。自那以后,实体可能已被修改或删除   实体已加载。刷新ObjectStateManager条目。

基于其他解决方案,我并不认为这是一个并发问题,因为我正在开发单个用户环境,并且正在提供所有必填字段。我无法从分析器捕获我的查询,因为我使用的是SQL Azure数据库。

1 个答案:

答案 0 :(得分:0)

我发现我的桌子上有以下索引:

CREATE UNIQUE NONCLUSTERED INDEX [IX_Item_Barcode] ON [dbo].[Item]
(
    [BarCodeID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = ON, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO

但我的BarcodeID字段在表中声明为可为空。因此,一旦我尝试使用空白BarcodeID或重复值添加另一条记录,它将抛出上述错误。由于我使用了选项 IGNORE_DUP_KEY = ON ,我希望绕过任何错误。

https://msdn.microsoft.com/en-us/library/ms186869.aspx是以下状态:

  

ON:   将重复键值插入唯一索引时,将出现警告消息。只有违反唯一性约束的行才会失败。

     

关闭:   将重复键值插入唯一索引时,将出现错误消息。整个INSERT操作将被回滚。

因此,解决方法是关闭此选项