public void MakePersistent() { ThrowErrorIfNotTransient(); previous = new EntityOid(metamodel, TypeName, Key) { IsTransient = IsTransient }; IsTransient = false; CacheState(); }
public void MakePersistentAndUpdateKey(object[] newKey) { ThrowErrorIfNotTransient(newKey); previous = new EntityOid(metamodel, TypeName, Key) { IsTransient = IsTransient }; Key = newKey; // after old key is saved ! IsTransient = false; CacheState(); }
public EntityOid(IMetamodelManager metamodel, string[] strings) { Assert.AssertNotNull(metamodel); this.metamodel = metamodel; var helper = new StringDecoderHelper(metamodel, strings); TypeName = helper.GetNextString(); Key = helper.GetNextObjectArray(); IsTransient = helper.GetNextBool(); EntityKey = (EntityKey)helper.GetNextSerializable(); if (helper.HasNext) { bool hasPrevious = helper.GetNextBool(); if (hasPrevious) { previous = (EntityOid)helper.GetNextEncodedToStrings(); } } CacheState(); }