From 6c5cf10b60ad00bb0a1a7264265772313f6a6dd1 Mon Sep 17 00:00:00 2001 From: Nikita Velikiy Date: Mon, 22 Apr 2024 04:31:27 +0500 Subject: [PATCH] InMemoryTable: Make IsConcurrencyConflict() method more readable (#33561) --- .../Storage/Internal/InMemoryTable.cs | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/EFCore.InMemory/Storage/Internal/InMemoryTable.cs b/src/EFCore.InMemory/Storage/Internal/InMemoryTable.cs index 2aa02485e80..15ccf6f9eeb 100644 --- a/src/EFCore.InMemory/Storage/Internal/InMemoryTable.cs +++ b/src/EFCore.InMemory/Storage/Internal/InMemoryTable.cs @@ -229,29 +229,32 @@ public virtual void Delete(IUpdateEntry entry, IDiagnosticsLogger concurrencyConflicts) { - if (property.IsConcurrencyToken) + if (!property.IsConcurrencyToken) { - var comparer = property.GetKeyValueComparer(); - var originalValue = entry.GetOriginalValue(property); + return false; + } - var converter = property.GetValueConverter() - ?? property.FindTypeMapping()?.Converter; + var comparer = property.GetKeyValueComparer() + ?? StructuralComparisons.StructuralEqualityComparer; - if (converter != null) - { - rowValue = converter.ConvertFromProvider(rowValue); - } + var originalValue = entry.GetOriginalValue(property); - if ((comparer != null && !comparer.Equals(rowValue, originalValue)) - || (comparer == null && !StructuralComparisons.StructuralEqualityComparer.Equals(rowValue, originalValue))) - { - concurrencyConflicts.Add(property, rowValue); + var converter = property.GetValueConverter() + ?? property.FindTypeMapping()?.Converter; - return true; - } + if (converter != null) + { + rowValue = converter.ConvertFromProvider(rowValue); } - return false; + if (comparer.Equals(rowValue, originalValue)) + { + return false; + } + + concurrencyConflicts.Add(property, rowValue); + + return true; } ///