Ejemplo n.º 1
0
 protected virtual void OnValidateSetAutoIncrement(bool value)
 {
     if (value == true && this.Table != null && this.Table.Rows.Count > 0 && CremaDataTypeUtility.CanUseAutoIncrement(this.DataType) == false)
     {
         throw new ArgumentException($"{this.DataType.GetTypeName()} 은 {nameof(AutoIncrement)}가 지원되지 않는 타입입니다.");
     }
 }
Ejemplo n.º 2
0
 public override void EndLoadData()
 {
     base.EndLoadData();
     if (this.autoIncrements != null)
     {
         for (var i = 0; i < this.autoIncrements.Length; i++)
         {
             var column = this.Columns[i];
             if (this.autoIncrements[i] == false || CremaDataTypeUtility.CanUseAutoIncrement(column.DataType) == false || column.DefaultValue != DBNull.Value)
             {
                 continue;
             }
             column.AutoIncrement = true;
         }
         this.autoIncrements = null;
     }
 }
Ejemplo n.º 3
0
        protected virtual void OnValidateSetDataType(Type value)
        {
            if (value == null)
            {
                throw new ArgumentNullException(nameof(value));
            }
            if (CremaDataTypeUtility.IsBaseType(value) == false)
            {
                throw new ArgumentException(string.Format(Resources.Exception_TypeCannotBeUsed_Format, value.Name), nameof(value));
            }
            if (this.Table != null && this.Table.Rows.Count > 0 && this.AutoIncrement == true && CremaDataTypeUtility.CanUseAutoIncrement(value) == false)
            {
                throw new ArgumentException($"AutoIncrement 를 사용중인 열에서 '{value.GetTypeName()}' 타입은 사용할 수 없습니다.");
            }

            var index = 0;

            if (this.Table != null)
            {
                foreach (DataRow item in this.Table.Rows)
                {
                    var field = item[this];
                    if (field == DBNull.Value)
                    {
                        continue;
                    }
                    if (CremaConvert.VerifyChangeType(field, value) == false)
                    {
                        throw new FormatException($"{index}번째 값 \"{field}\"은(는) {value.GetTypeName()} 타입으로 변환할 수 없습니다.");
                    }
                    index++;
                }
            }

            if (this.DefaultValue != DBNull.Value && CremaConvert.VerifyChangeType(this.DefaultValue, value) == false)
            {
                throw new FormatException($"기본값 \"{this.DefaultValue}\"은(는) {value.GetTypeName()} 타입으로 변환할 수 없습니다.");
            }
        }