diff --git a/Projects/Server/Serialization/GenericEntityPersistence.cs b/Projects/Server/Serialization/GenericEntityPersistence.cs index abc6ba3e0..e2a25909c 100644 --- a/Projects/Server/Serialization/GenericEntityPersistence.cs +++ b/Projects/Server/Serialization/GenericEntityPersistence.cs @@ -345,8 +345,21 @@ public class GenericEntityPersistence : GenericPersistence, IGenericEntityPer _entities.Clear(); _entities.TrimExcess(); _entities = null; + + if (_toDelete != null) + { + foreach (var t in _toDelete) + { + t.Delete(); + } + + _toDelete.Clear(); + _toDelete = null; + } } + private static List _toDelete; + private unsafe void InternalDeserialize(string filePath, int index, Dictionary typesDb) { using var mmf = MemoryMappedFile.CreateFromFile(filePath, FileMode.Open); @@ -415,7 +428,8 @@ public class GenericEntityPersistence : GenericPersistence, IGenericEntityPer } } - t.Delete(); + _toDelete ??= []; + _toDelete.Add(t); } }