public void CreateStagingTable(EntityTable table)
        {
            _sql.AppendLine($"create table {table.StagingTable.Name}");
            _sql.AppendLine("(");

            for (int i = 0; i < table.EntityColumns.Count; i++)
            {
                EntityColumn column    = table.EntityColumns[i];
                SqlDbType    sqlDbType = column.GetSqlDbType();

                if (column.IsPrimaryKey())
                {
                    continue;
                }
                else
                {
                    _sql.Append($"{column.Name} {sqlDbType.ToSqlString()} not null");
                }

                _sql.AppendLine(i == table.EntityColumns.Count - 1 ? "" : ",");
            }

            _sql.AppendLine(")")
            .AppendLine();
        }
Beispiel #2
0
        public void AddColumn(EntityColumn field)
        {
            Entity.Schema.Columns.Add(field);
            _storage.UpdateDataBaseStructure();

            _storage.AddColoumn(Entity);
        }
 internal EntityColumnFilter(EntityColumn column, string groupName, FilterCondition condition, FilterComparison comparison)
 {
     this.Column = column;
     this.Comparison = comparison;
     this.Condition = condition;
     this.GroupName = groupName;
 }
 protected internal void Filter(
     EntityColumn column,
     string @group = "Default",
     FilterCondition condition = FilterCondition.Default,
     FilterComparison comparison = FilterComparison.Default)
 {
     this.Filterables.Add(new EntityColumnFilter(column, @group, condition, comparison));
 }
        private void AssociateWithParent(IEntity entity, EntityTable table)
        {
            EntityTable  parentTable      = table.ParentTable;
            EntityColumn foreignKeyColumn = table.GetForeignKeyColumnFor(parentTable);
            object       foreignKey       = entity.GetPropertyValue(foreignKeyColumn.PropertyName);
            IEntity      parentEntity     = entityPrimaryKeyDictionary[parentTable][foreignKey];

            parentEntity.AddChildPropertyValue(table.Name, entity);
        }
        static public EntityRelation BuildEntityRelation(EntityRow parentRow, EntityColumn column)
        {
            var value = parentRow[column];

            if (value == null)
            {
                return(null);
            }
            return(BuildEntityRelation(parentRow, value.ToString()));
        }
Beispiel #7
0
 static CategoryModel()
 {
     TableName = "Category";
     Columns   = new EntityColumn[]
     {
         new EntityColumn("ID", EntityColumnType.Long, true, true),
         new EntityColumn("Name", EntityColumnType.String50, true),
         new EntityColumn("DisplayColor", EntityColumnType.String10, true),
     };
     CreateTableIfNotExists();
 }
Beispiel #8
0
        static public void CopyTo(this EntityColumn it, IEntitySchema columnDef)
        {
            var attris = it.GetAttributesEntity();

            columnDef.ColumnName   = it.ColumnName;
            columnDef.DataType     = string.IsNullOrEmpty(it.DataType) ? defaultDataType : it.DataType;
            columnDef.FieldType    = attris.FieldType.ToString();
            columnDef.AliasType    = attris.AliasType;
            columnDef.KeyGen       = attris.KeyGen;
            columnDef.Unique       = it.Unique;
            columnDef.DefaultValue = (it.DefaultValue == null) ? null : it.DefaultValue.ToString();
        }
Beispiel #9
0
 static ProjectModel()
 {
     TableName = "Project";
     Columns   = new EntityColumn[] {
         new EntityColumn("ID", EntityColumnType.Long, true, true),
         new EntityColumn("ProjectKey", EntityColumnType.String10, true),
         new EntityColumn("Name", EntityColumnType.String50, true),
         new EntityColumn("OwnerID", EntityColumnType.Long, true),
         new EntityColumn("CategoryID", EntityColumnType.Long, true),
         new EntityColumn("LogoString", EntityColumnType.String, false)
     };
     CreateTableIfNotExists();
 }
Beispiel #10
0
 static UserModel()
 {
     TableName = "User";
     Columns   = new EntityColumn[]
     {
         new EntityColumn("ID", EntityColumnType.Long, true, true),
         new EntityColumn("LoginName", EntityColumnType.String50, true),
         new EntityColumn("FirstName", EntityColumnType.String50, true),
         new EntityColumn("LastName", EntityColumnType.String50, true),
         new EntityColumn("Password", EntityColumnType.String256, true)
     };
     CreateTableIfNotExists();
 }
Beispiel #11
0
        static public void CopyTo(this IEntitySchema it, EntityColumn column)
        {
            var attris = column.GetAttributesEntity();

            column.ColumnName = it.ColumnName;
            if (!string.IsNullOrEmpty(it.FieldType))
            {
                attris.FieldType = (EntityFieldType)Enum.Parse(typeof(EntityFieldType), it.FieldType, true);
            }
            attris.AliasType    = it.AliasType;
            column.DataType     = (attris.FieldType == EntityFieldType.Var && string.IsNullOrEmpty(it.DataType)) ? defaultDataType : it.DataType;
            attris.KeyGen       = it.KeyGen;
            column.Unique       = it.Unique;
            column.DefaultValue = string.IsNullOrEmpty(it.DefaultValue) ? null : it.DefaultValue;
        }
Beispiel #12
0
 static TaskModel()
 {
     TableName = "Task";
     Columns   = new EntityColumn[]
     {
         new EntityColumn("ID", EntityColumnType.Long, true, true),
         new EntityColumn("StatusID", EntityColumnType.Long, true),
         new EntityColumn("Name", EntityColumnType.String50, true),
         new EntityColumn("Description", EntityColumnType.Text, true),
         new EntityColumn("SortOrder", EntityColumnType.Int, true),
         new EntityColumn("PriorityID", EntityColumnType.Long, true),
         new EntityColumn("UserID", EntityColumnType.Long, true)
     };
     CreateTableIfNotExists();
 }
Beispiel #13
0
 static StatusModel()
 {
     TableName = "Status";
     Columns   = new EntityColumn[]
     {
         new EntityColumn("ID", EntityColumnType.Long, true, true),
         new EntityColumn("ProjectID", EntityColumnType.Long, true),
         new EntityColumn("Title", EntityColumnType.String50, true),
         new EntityColumn("MinCards", EntityColumnType.Int, true),
         new EntityColumn("MaxCards", EntityColumnType.Int, true),
         new EntityColumn("IsBacklog", EntityColumnType.Bool, true),
         new EntityColumn("IsRelease", EntityColumnType.Bool, true)
     };
     CreateTableIfNotExists();
 }
        public void BuildSelectStatement()
        {
            foreach (EntityTable table in _mapping.Tables)
            {
                List <EntityColumn> foreignKeyColumns = table.GetForeignKeyColumns();

                if (table.Type != _baseType)
                {
                    foreach (EntityColumn column in foreignKeyColumns)
                    {
                        EntityTable  foreignTable  = _mapping.Tables.Where(t => t.Name == column.ForeignKeyTableMapping).First();
                        EntityColumn foreignColumn = foreignTable.GetPrimaryKeyColumn();

                        column.Restrictions.Add(new Restriction(column, $"select {foreignColumn.Name} from {foreignTable.StagingTable.Name}", Enums.RestrictionTypes.In));
                    }
                }

                _sql.AppendLine();
                _sql.AppendLine(new SelectStatement(table).Into(table.StagingTable).ToString());
                _sql.AppendLine();
                _sql.AppendLine(new SelectStatement(table).From(table.StagingTable).ToString());
            }
        }
Beispiel #15
0
 static public IEntityColumnAttributes GetAttributesEntity(this EntityColumn column)
 {
     return(GetAttributesEntity <EntityColumn, IEntityColumnAttributes>(column));
 }
 protected internal void Sort(EntityColumn column, SortDirection direction = SortDirection.Default)
 {
     this.Sortables.Add(new EntityColumnSort(column, direction));
 }
 protected internal void Select(EntityColumn column)
 {
     this.Selectables.Add(column);
 }
Beispiel #18
0
        /// <summary>
        /// 执行编辑操作,返回影响行数
        /// </summary>
        /// <typeparam name="T">实体模型名称</typeparam>
        /// <param name="connectionStr">数据库字符串连接</param>
        /// <param name="t">实体模型实例化对象</param>
        /// <returns>int</returns>
        public virtual int Update <T>(string connectionStr, T t)
        {
            int result = 0;

            try
            {
                #region 初始相关变量定义
                var                 dbOperator       = new AdoNetUtility(DbType);
                EntityColumn        idColumn         = null;
                List <EntityColumn> noneIdColumnList = null;
                bool                isHaveColumn     = false;
                bool                isHaveId         = false;
                #endregion

                #region 获取字段名称、值
                List <EntityColumn> columnList = new EntityColumnUtility().GetColumnList <T>(t);
                if (columnList != null && columnList.Count > 0)
                {
                    var idList = (from p in columnList where p.IsPk == true select p).ToList <EntityColumn>();
                    if (idList != null && idList.Count > 0)
                    {
                        isHaveId = true;
                        idColumn = idList[0];
                    }
                    var noneIdList = (from p in columnList where p.IsPk == false select p).ToList <EntityColumn>();
                    if (noneIdList != null && noneIdList.Count > 0)
                    {
                        isHaveColumn     = true;
                        noneIdColumnList = noneIdList;
                    }
                }
                #endregion

                #region 拼接SQL及对数据库操作
                if (isHaveColumn && isHaveId)
                {
                    Type          type      = typeof(T);
                    string        tableName = type.Name;
                    StringBuilder cmdText   = new StringBuilder();
                    cmdText.AppendFormat("update {0} set ", tableName);
                    List <IDbDataParameter> dbParamList = new List <IDbDataParameter>();
                    for (int i = 0; i < noneIdColumnList.Count; i++)
                    {
                        EntityColumn column = noneIdColumnList[i];
                        cmdText.AppendFormat("{0}={1}", column.ColumnName, DbPramStr + column.ColumnName);
                        if (i != (noneIdColumnList.Count - 1))
                        {
                            cmdText.Append(",");
                        }
                        var dbParam = dbOperator.CreateDbParameter(column.ColumnName, column.ColumnValue);
                        dbParamList.Add(dbParam);
                    }
                    cmdText.AppendFormat(" where {0}={1}", idColumn.ColumnName, DbPramStr + idColumn.ColumnName);
                    var idDbParam = dbOperator.CreateDbParameter(idColumn.ColumnName, idColumn.ColumnValue);
                    dbParamList.Add(idDbParam);
                    result = Execute(connectionStr, cmdText.ToString(), CommandType.Text, dbParamList.ToArray());
                }
                #endregion
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }