private void RemapEntityKeys(RemapContext context) { foreach (var entityState in context.EntitiesToRemap.Where(el => el.Key.IsTemporary(Session.Domain))) { var newKey = Key.Generate(Session, entityState.Entity.TypeInfo); context.RegisterKeyMap(entityState.Key, newKey); } }
private void RemapEntitySetReference(RemapContext context, ReferenceFieldChangeInfo info) { var fieldAssociation = info.Field.GetAssociation(info.FieldValue.TypeInfo); if (!fieldAssociation.IsMaster && fieldAssociation.IsPaired) { return; } var oldCombinedKey = info.AuxiliaryEntity; var fieldOwnerKey = context.TryRemapKey(info.FieldOwner); var fieldValueKey = context.TryRemapKey(info.FieldValue); var transformer = new CombineTransform(false, fieldOwnerKey.Value.Descriptor, fieldValueKey.Value.Descriptor); var combinedTuple = transformer.Apply(TupleTransformType.Tuple, fieldOwnerKey.Value, fieldValueKey.Value); var newCombinedKey = Key.Create(Session.Domain, Session.StorageNodeId, fieldAssociation.AuxiliaryType, TypeReferenceAccuracy.ExactType, combinedTuple); context.RegisterKeyMap(oldCombinedKey, newCombinedKey); }