示例#1
0
 public void ContainsAdd(ref List <SqlBuildParameter> obj, SqlBuildParameter build, bool isGenericList = false)
 {
     try
     {
         var r = obj.Where(w => w.TableNameAs == build.TableNameAs).ToList();
         if (r == null || r.Count() == 0)
         {
             obj.Add(build);
         }
         else
         {
             if (isGenericList)
             {
                 obj.Add(build);
             }
             else
             {
                 SqlBuildParameter upds = r.ToList()[0];
                 int sourceIndex        = obj.IndexOf(upds);
                 //加至末尾
                 upds.ColumnBuilds.AddRange(build.ColumnBuilds);
                 obj[sourceIndex] = upds;
             }
         }
     }
     catch (Exception err)
     {
         Trace.WriteLine(err.ToString());
     }
 }
示例#2
0
        public virtual void SetBuildParameter(ref List <SqlBuildParameter> buildParmes, object ojbValue, ColumnInfo columnInfo)
        {
            SqlBuildParameter  classbuildparameter = SqlBuildParameter.Create(columnInfo.TableNameAs);
            List <ColumnBuild> classBuilList       = new List <ColumnBuild>()
            {
                ColumnBuild.Create(columnInfo.ColumnName, columnInfo.Value, columnInfo.ColumnType, columnInfo.DBType)
            };

            classbuildparameter.ColumnBuilds = classBuilList;
            ContainsAdd(ref buildParmes, classbuildparameter, columnInfo.IsGenric);
        }
        public void BasePropertySetValue(ref List <SqlBuildParameter> buildParmes, object obj, SQLBuildAttribute buildAttribute, PropertyInfo property, bool isList = false)
        {
            Type               bindType            = MatchAttrProperty(buildAttribute.ColumnTypeAs, property);
            string             AddColName          = string.IsNullOrEmpty(buildAttribute.ColumnAs) ? property.Name : buildAttribute.ColumnAs;
            object             AddValue            = property.GetValue(obj, null);
            SqlBuildParameter  classbuildparameter = SqlBuildParameter.Create(buildAttribute.TableAs);
            List <ColumnBuild> classBuilList       = new List <ColumnBuild>()
            {
                ColumnBuild.Create(AddColName, AddValue, bindType, buildAttribute)
            };

            classbuildparameter.ColumnBuilds = classBuilList;
            SqlBuildSuppot.ContainsAdd(ref buildParmes, classbuildparameter, isList);
        }
示例#4
0
        public List <SqlBuildParameter> GenericConvert <T>(T obj) where T : class, IList
        {
            List <SqlBuildParameter> builds = new List <SqlBuildParameter>();

            if (obj == null)
            {
                return(builds);
            }
            IEntityMapper mapper      = new StandardMapper();
            BuildColumn   buildColumn = new BuildColumn();
            IList         objArray    = obj as IList;

            foreach (var item in objArray)
            {
                TableInfo          tableInfo = mapper.GetTableInfo(item.GetType());
                SqlBuildParameter  param     = SqlBuildParameter.Create(tableInfo.Value);
                List <ColumnBuild> colPrams  = new List <ColumnBuild>();
                //解析类的属性字段
                PropertyInfo[] properties = mapper.GetAllProperty(item.GetType());
                foreach (var property in properties)
                {
                    ColumnInfo colinfo = mapper.GetColumnInfo(item, property);
                    if (colinfo == null || colinfo.IsNull)
                    {
                        continue;
                    }
                    if (colinfo.IsBaseType)
                    {
                        buildColumn.SetProperty(property);
                        colPrams.Add(new ColumnBuild {
                            ColumnName = colinfo.TableNameAs,
                            ColType    = colinfo.ColumnType,
                            Value      = colinfo.Value,
                            DbType     = colinfo.DBType
                        });
                    }
                }
                param.ColumnBuilds = colPrams;
                builds.Add(param);
            }
            return(builds);
        }