public InternalFieldConfigItem(DataColumn column, string[] sortedKeyFields) { FieldName = DisplayName = column.ColumnName; NickName = StringUtil.GetNickName(FieldName); DataType = MetaDataUtil.ConvertTypeToDataType(column.DataType); IsAutoInc = column.AutoIncrement; if (sortedKeyFields.Length == 1) { IsKey = string.Compare(FieldName, sortedKeyFields[0], true, ObjectUtil.SysCulture) == 0; } else { IsKey = Array.BinarySearch(sortedKeyFields, FieldName, COMPARER) >= 0; } }
protected sealed override void PrepareParameters() { PropertyInfo[] properties = GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); var parameters = from memberInfo in properties from attribute in memberInfo.GetCustomAttributes(false) where attribute is ParameterAttribute select new { Property = memberInfo, Attribute = (ParameterAttribute)attribute }; foreach (var item in parameters) { ParameterAttribute attribute = item.Attribute; string name; if (string.IsNullOrEmpty(attribute.Name)) { name = item.Property.Name; switch (attribute.LetterCase) { case CaseCategory.Uppercase: name = name.ToUpper(ObjectUtil.SysCulture); break; case CaseCategory.Lowercase: name = name.ToLower(ObjectUtil.SysCulture); break; } } else { name = attribute.Name; } TkDataType dataType = attribute.UseDefaultType ? MetaDataUtil.ConvertTypeToDataType(item.Property.PropertyType) : attribute.DataType; StoredProcParameter param = Add(name, attribute.Direction, dataType); if (attribute.Size > 0) { param.Size = attribute.Size; } else { if (dataType == TkDataType.String) { param.Size = 255; } } ParameterInfo info = new ParameterInfo { Attribute = attribute, Parameter = param, Property = item.Property }; if (DbUtil.IsInputParameter(attribute.Direction)) { fInputProperties.Add(info); } if (DbUtil.IsOutputParameter(attribute.Direction)) { fOutputProperties.Add(info); } IDbDataParameter parameter = CreateDataParameter(param); info.SetInputValue(this); Command.Parameters.Add(parameter); } }