Skip to content

Commit 20b7e0a

Browse files
committed
Fix KeyNotFoundException in StatefulPersistenceContext.RemoveEntity on Evict
Fixes #1310
1 parent 2ebbac7 commit 20b7e0a

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/NHibernate/Engine/StatefulPersistenceContext.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -443,18 +443,18 @@ public bool ContainsEntity(EntityKey key)
443443
/// </summary>
444444
public object RemoveEntity(EntityKey key)
445445
{
446-
if (!entitiesByKey.Remove(key, out var tempObject))
447-
throw new KeyNotFoundException(key.ToString());
448-
449-
object entity = tempObject;
450-
List<EntityUniqueKey> toRemove = new List<EntityUniqueKey>();
451-
foreach (KeyValuePair<EntityUniqueKey, object> pair in entitiesByUniqueKey)
446+
if (entitiesByKey.Remove(key, out var entity))
452447
{
453-
if (pair.Value == entity) toRemove.Add(pair.Key);
454-
}
455-
foreach (EntityUniqueKey uniqueKey in toRemove)
456-
{
457-
entitiesByUniqueKey.Remove(uniqueKey);
448+
List<EntityUniqueKey> toRemove = new List<EntityUniqueKey>();
449+
foreach (KeyValuePair<EntityUniqueKey, object> pair in entitiesByUniqueKey)
450+
{
451+
if (pair.Value == entity) toRemove.Add(pair.Key);
452+
}
453+
454+
foreach (EntityUniqueKey uniqueKey in toRemove)
455+
{
456+
entitiesByUniqueKey.Remove(uniqueKey);
457+
}
458458
}
459459

460460
entitySnapshotsByKey.Remove(key);

0 commit comments

Comments
 (0)