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(); }
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())); }
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(); }
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(); }
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(); }
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(); }
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; }
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(); }
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()); } }
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); }
/// <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); }