/// <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."); } }
/// <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)); }
public PrimaryKey(string name, string value, DbFieldType type, DbSearchType pDbSearchTypeKey) { this.Name = name; this.Value = value; this.Type = type; this.SearchTypeKey = pDbSearchTypeKey; }
public void AddDbFieldType(DbFieldType fieldType) { if (!_dbFieldTypes.Contains(fieldType)) { _dbFieldTypes.Add(fieldType); } }
public PrimaryKey(string name, string value) { this.Name = name; this.Value = value; this.Type = DbFieldType.Text; this.SearchTypeKey = DbSearchType.Equal; }
public DbField(string FieldName, DbFieldType FieldType) { this.FieldName = FieldName; this.FieldType = FieldType; this.LookupTable = ""; this.ChildPK = ""; this.ParentPK = ""; this.FieldNameAlias = ""; IsLookupField = false; }
public DbColumn(DbFieldType fieldType, DbFieldValue fieldValue) { this.FieldType = fieldType; this.FieldValue = fieldValue; }
/// <summary> /// Сопоставляет свойству поле таблицы БД с именем fieldName и указывает ему тип fieldType /// </summary> /// <param name="fieldName">Имя сопоставляемого поля</param> /// <param name="fieldType">Тип сопоставляемого поля</param> public DbFieldInfoAttribute(string fieldName, DbFieldType fieldType) : this(fieldName) { Type = fieldType; }
/// <summary> /// Сопоставляет свойству поле таблицы БД с именем fieldName и указывает ему тип DatabaseFieldType.String /// </summary> /// <param name="fieldName">Имя сопоставляемого поля</param> public DbFieldInfoAttribute(string fieldName) { Name = fieldName; Type = DbFieldType.String; }
public DbFieldAttribute(DbFieldType fieldType) { FieldType = fieldType; }