I found a solution for people who get an exception:
Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
But, anyway I have question.
I read topic: Entity Framework: “Store update, insert, or delete statement affected an unexpected number of rows (0).” To VMAtm, Robert Harvey
In my case I had for example table articles:
Articles ------------ article_id title date_cr date_mod deleted
And I had trigger:
create trigger articles_instead_of_insert on articles instead of insert as SET NOCOUNT ON; insert into articles( article_id, title, date_cr, date_mod, deleted ) select user_id, title, isnull(date_cr, {fn NOW()}), isnull(date_mod, {fn NOW()}), isnull(deleted, 0) from inserted; go
When I delete this trigger then I dont get this exception. So this trigger is problem. And now I have a question – Why? Should I do something?
Advertisement
Answer
Solution:
try { context.SaveChanges(); } catch (OptimisticConcurrencyException) { context.Refresh(RefreshMode.ClientWins, db.Articles); context.SaveChanges(); }