/// <summary> /// 更新map /// </summary> /// <param name="saveCompile"></param> /// <param name="property"></param> protected virtual void ConvertModifyMap(SaveCompilerInfo saveCompile, OrmPropertyInfo property) { if (property.Map == null || !property.Map.IsModify) { return; } var p = saveCompile.SaveInfo.Entity.GetType().GetProperties().FirstOrDefault(it => it.Name.Equals(property.PropertyName)); if (p == null) { return; } var pValue = p.GetValue(saveCompile.SaveInfo.Entity, null); if (pValue != null && !saveCompile.IsInMap(property)) { saveCompile.MapProperties.Add(property); SelectModifyMap(saveCompile, pValue, property); } }
/// <summary> /// 选择还原Map方式 /// </summary> /// <param name="saveCompile"></param> /// <param name="where"></param> /// <param name="property"></param> protected virtual void SelectRestoreMap(SaveCompilerInfo saveCompile, string where, OrmPropertyInfo property) { if (property.Map == null || !property.Map.IsRestore && !saveCompile.IsInMap(property)) { return; } saveCompile.MapProperties.Add(property); AppendRestoreMapSql(saveCompile, property, @where); var mapSaveCompiler = new SaveCompilerInfo { Command = saveCompile.Command, MapProperties = saveCompile.MapProperties, SaveInfo = new SaveInfo { Entity = saveCompile.SaveInfo.Entity, Information = saveCompile.SaveInfo.Information, Object = property.Map.GetMapObject() } }; ConvertRestoreMap(mapSaveCompiler, GetRestoreMapWhere(saveCompile, property, @where)); }