private void FixupDepartment(Department previousValue) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.Courses.Contains(this)) { previousValue.Courses.Remove(this); } if (Department != null) { if (!Department.Courses.Contains(this)) { Department.Courses.Add(this); } DepartmentID = Department.DepartmentID; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("Department") && (ChangeTracker.OriginalValues["Department"] == Department)) { ChangeTracker.OriginalValues.Remove("Department"); } else { ChangeTracker.RecordOriginalValue("Department", previousValue); } if (Department != null && !Department.ChangeTracker.ChangeTrackingEnabled) { Department.StartTracking(); } } }