示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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));
        }