コード例 #1
0
        /// <summary>
        /// Возвращает строковое представление объекта в формате SQL выражения
        /// </summary>
        /// <param name="databaseFieldType">Тип поля объекта в БД</param>
        /// <param name="value">Сам объект</param>
        /// <returns></returns>
        static string ConvertObjectToExpression(DbFieldType databaseFieldType, object value)
        {
            if (value == null)
            {
                return("NULL");
            }
            switch (databaseFieldType)
            {
            case DbFieldType.String:
                return(string.Format(@"'{0}'", value.ToString()));

            case DbFieldType.Integer:
                return(value.ToString());

            case DbFieldType.Double:
                return(value.ToString());

            case DbFieldType.DateTime:
                return(string.Format(@"STR_TO_DATE('{0}', '%Y%m%d')", ((DateTime)value).ToString("yyyyMMdd")));

            case DbFieldType.Boolean:
                return(((bool)value) == true ? "1" : "0");

            default:
                throw new InvalidOperationException("Non-registered field type.");
            }
        }
コード例 #2
0
        /// <summary>
        /// 创建基础值集合的值字段
        /// </summary>
        /// <param name="ownerType"></param>
        /// <param name="propertyType"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static GeneratedField CreatePrimitiveValue(Type ownerType, ValueListField field)
        {
            var            valueType = field.ValueType;
            DomainProperty property  = null;
            DbFieldType    fieldType = DbFieldType.Common;

            if (valueType == typeof(string))
            {
                var maxLength = field.Tip.GetMaxLength();
                if (maxLength < 300)
                {
                    //如果value的字符串类型长度小于300,那么就可以参与索引
                    fieldType = DbFieldType.NonclusteredIndex;
                }
                property = new StringProperty(ownerType, PrimitiveValueName, maxLength, field.Tip.IsASCIIString());
            }
            else
            {
                fieldType = DbFieldType.NonclusteredIndex;
                property  = new CustomProperty(ownerType, valueType, PrimitiveValueName);
            }

            var attr = new PropertyRepositoryAttribute()
            {
                Property = property
            };

            return(new GeneratedField(attr, PrimitiveValueName, GeneratedFieldType.PrimitiveValue, fieldType));
        }
コード例 #3
0
ファイル: PrimaryKey.cs プロジェクト: henzio79/asmin
 public PrimaryKey(string name, string value, DbFieldType type, DbSearchType pDbSearchTypeKey)
 {
     this.Name          = name;
     this.Value         = value;
     this.Type          = type;
     this.SearchTypeKey = pDbSearchTypeKey;
 }
コード例 #4
0
 public void AddDbFieldType(DbFieldType fieldType)
 {
     if (!_dbFieldTypes.Contains(fieldType))
     {
         _dbFieldTypes.Add(fieldType);
     }
 }
コード例 #5
0
ファイル: PrimaryKey.cs プロジェクト: henzio79/asmin
 public PrimaryKey(string name, string value)
 {
     this.Name          = name;
     this.Value         = value;
     this.Type          = DbFieldType.Text;
     this.SearchTypeKey = DbSearchType.Equal;
 }
コード例 #6
0
 public DbField(string FieldName, DbFieldType FieldType)
 {
     this.FieldName      = FieldName;
     this.FieldType      = FieldType;
     this.LookupTable    = "";
     this.ChildPK        = "";
     this.ParentPK       = "";
     this.FieldNameAlias = "";
     IsLookupField       = false;
 }
コード例 #7
0
ファイル: DbColumn.cs プロジェクト: duffman/PutteMySQL
 public DbColumn(DbFieldType fieldType, DbFieldValue fieldValue)
 {
     this.FieldType  = fieldType;
     this.FieldValue = fieldValue;
 }
コード例 #8
0
 /// <summary>
 /// Сопоставляет свойству поле таблицы БД с именем fieldName и указывает ему тип fieldType
 /// </summary>
 /// <param name="fieldName">Имя сопоставляемого поля</param>
 /// <param name="fieldType">Тип сопоставляемого поля</param>
 public DbFieldInfoAttribute(string fieldName, DbFieldType fieldType)
     : this(fieldName)
 {
     Type = fieldType;
 }
コード例 #9
0
 /// <summary>
 /// Сопоставляет свойству поле таблицы БД с именем fieldName и указывает ему тип DatabaseFieldType.String
 /// </summary>
 /// <param name="fieldName">Имя сопоставляемого поля</param>
 public DbFieldInfoAttribute(string fieldName)
 {
     Name = fieldName;
     Type = DbFieldType.String;
 }
コード例 #10
0
 public DbFieldAttribute(DbFieldType fieldType)
 {
     FieldType = fieldType;
 }