private void FixupCustomer(Customer previousValue) { if (IsDeserializing) { return; } if (previousValue != null && ReferenceEquals(previousValue.CustomerPicture, this)) { previousValue.CustomerPicture = null; } if (Customer != null) { Customer.CustomerPicture = this; CustomerId = Customer.CustomerId; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Customer") && (ChangeTracker.OriginalValues["Customer"] == Customer)) { ChangeTracker.OriginalValues.Remove("Customer"); } else { ChangeTracker.RecordOriginalValue("Customer", previousValue); } if (Customer != null && !Customer.ChangeTracker.ChangeTrackingEnabled) { Customer.StartTracking(); } } }
private void FixupCustomer(Customer previousValue, bool skipKeys = false) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.BankAccounts.Contains(this)) { previousValue.BankAccounts.Remove(this); } if (Customer != null) { if (!Customer.BankAccounts.Contains(this)) { Customer.BankAccounts.Add(this); } CustomerId = Customer.CustomerId; } else if (!skipKeys) { CustomerId = null; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Customer") && (ChangeTracker.OriginalValues["Customer"] == Customer)) { ChangeTracker.OriginalValues.Remove("Customer"); } else { ChangeTracker.RecordOriginalValue("Customer", previousValue); } if (Customer != null && !Customer.ChangeTracker.ChangeTrackingEnabled) { Customer.StartTracking(); } } }