///------------------------------------------------------------------------------------------------- /// <summary> /// Creates entity core. /// </summary> /// <param name="id"> /// The identifier. /// </param> /// <param name="metaClass"> /// the meta class. /// </param> /// <param name="instance"> /// The instance. /// </param> /// <returns> /// The new entity core. /// </returns> ///------------------------------------------------------------------------------------------------- protected virtual IModelElement CreateEntityCore(Identity id, ISchemaEntity metaClass, IModelEntity instance) { Contract.Requires(id, "id"); Contract.Requires(metaClass, "metaClass"); IModelElement result = instance; CheckInitialized(); using (var session = EnsuresRunInSession()) { result = L1Cache.CreateEntity(id, metaClass, instance); if (session != null) { session.AcceptChanges(); } return(result); } }