【C#】DbUpdateConcurrencyExceptionが発生する(同じレコードに複数のフォームから同時に書き込んでいた)

SQLite+EntityFrameworkの環境にて発生。

エラー内容

System.Data.Entity.Infrastructure.DbUpdateConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions. ---> System.Data.Entity.Core.OptimisticConcurrencyException: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions.
   場所 System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.ValidateRowsAffected(Int64 rowsAffected, UpdateCommand source)
   場所 System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()
   場所 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   場所 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction)
   場所 System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)
   場所 System.Data.Entity.Internal.InternalContext.SaveChanges()

原因

あるフォームのイベント発生時にレコード更新する処理を入れていたが、先に閉じたフォームのイベントが残っていて、同時に複数のフォームから同じレコードを更新していたことが原因だった。
今回は、閉じたフォームのイベントが確実に消えるようにしたところ解消された。