コード例 #1
0
        public override AnyStatus Save(StackAppContext appContext, EntityModelBase model)
        {
            if (model.IsNew)
            {
                var entityId  = model.GetValue <int>("entityid", 0);
                var length    = model.GetValue <int>("length", 0);
                var type      = model.GetValue <int>("fieldtype", 0);
                var fieldInfo = EntityMetaData.CreateField((FieldType)type);
                var baseType  = fieldInfo.BaseType;
                model.SetTempInfo("basetypecode", baseType);

                if (length == 0)
                {
                    if (baseType == TypeCode.String)
                    {
                        length = GetDefaultVarCharLength((FieldType)type);
                    }
                    else if (baseType == TypeCode.Decimal)
                    {
                        length = 6;
                    }

                    model.SetValue("length", length);
                }

                var fieldName = model.GetValue("fieldname", "");
                var tableName = this.GetEntity(entityId).DBName;
                model.SetValue("tablename", tableName);
                model.SetValue("dbname", fieldName);
            }

            return(base.Save(appContext, model));
        }