当我尝试保存对我的两个实体的上下文所做的更改时,我收到以下错误。
存储更新,插入或删除语句会影响意外 行数(0)。自那以后,实体可能已被修改或删除 实体已加载。刷新ObjectStateManager条目。
基于其他解决方案,我并不认为这是一个并发问题,因为我正在开发单个用户环境,并且正在提供所有必填字段。我无法从分析器捕获我的查询,因为我使用的是SQL Azure数据库。
答案 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操作将被回滚。
因此,解决方法是关闭此选项