public sealed override bool TrackChanges(object newValue, SyncContext context) { if (newValue != value) { value = newValue; if (value == null) { EntityID = SyncHandle.NullEntityID; } else { SyncHandle handle = context.GetHandleByObject(value); // If no handle is found, then the supplie object is not in the syncpool. //TODO: Here we could optionally add the object to the pool for laughs. EntityID = (handle != null) ? handle.EntityID : SyncHandle.NullEntityID; } Synchronised = false; Revision = context.Revision; return(true); } return(false); }