//---------------------------------------------------------- // 分表储存 private void SaveTablePerSubClass() { Type t2 = this.GetType(); while (t2 != typeof(CEntity)) { TMetaEntity meta2 = GetMetaEntity(t2); TMetaTable mt2 = meta2.MetaTable; TInheritMappingType inheritType = mt2.InheritMappingType; try { // PerConcrete与PerSubClass同样都调用函数Save(meta) // 在此函数中,去进一步区分MappingType // NG Save(meta2); } catch (TDataSilentlyChangedException e2) { string trace = TEntityConcurrencyTrace.Trace(this, meta2); SimpleLog.Write(trace); SimpleLog.Write(e2); throw e2; } t2 = t2.BaseType; } }
//---------------------------------------------------------- // 同表储存 private void SaveTablePerConcreteClass(TMetaEntity meta) { try { // PerConcrete与PerSubClass同样都调用函数Save(meta) // 在此函数中,去进一步区分MappingType // NG Save(meta); } catch (TDataSilentlyChangedException e1) { string trace = TEntityConcurrencyTrace.Trace(this, meta); SimpleLog.Write(trace); SimpleLog.Write(e1); throw e1; } }