protected void ReaderColumns(TableEntity tableEntity, List <ColumnInfo> columns) { if (columns != null && columns.Count > 0) { ColumnEntity[] listColumns = service.GetColumnList(tableEntity.ID.ToString()); int i = 0; foreach (ColumnInfo column in columns) { i++; try { //获取服务器字段信息 ColumnEntity columnEntity = listColumns.Where(o => o.Field == column.Field).FirstOrDefault(); if (columnEntity == null) { columnEntity = new ColumnEntity(); } DataType dataType = DataTypeManager.ParseDbDataType(DbType, column.DataType.ToLower()); columnEntity.Field = column.Field; columnEntity.DataType = dataType.ToString(); columnEntity.Required = !column.IsNullable; columnEntity.DefaultValue = column.DefaultValue; ModelReaderHelper.SetLength(columnEntity, dataType, column.Length, column.Precision); ModelReaderHelper.SetColumnEditor(columnEntity, dataType); if (columnEntity.ID <= 0) { //新增字段 columnEntity.SortID = i; columnEntity.Display = string.IsNullOrEmpty(column.Display) ? column.Field : column.Display; ModelReaderHelper.SetDefault(columnEntity); columnEntity.TableID = tableEntity.ID; ModelReaderHelper.SetFormatString(columnEntity, dataType); ModelReaderHelper.SetAlign(columnEntity, dataType); //设置主键信息 if (column.IsDataKey) { ModelReaderHelper.SetColumnDataKey(columnEntity); //更新表的主键信息 tableEntity.DataKey = column.Field; tableEntity.DataKeyType = column.IsIdentity ? WSH.CodeBuilder.DispatchServers.DataKeyType.IdEntity : WSH.CodeBuilder.DispatchServers.DataKeyType.Guid; tableEntity.DefaultSortName = column.Field; tableEntity.DefaultSortMode = DispatchServers.SortMode.Asc; service.UpdateTable(tableEntity); } columnEntity.CreateTime = DateTime.Now; service.AddColumn(columnEntity); } else { columnEntity.EditTime = DateTime.Now; service.UpdateColumn(columnEntity); } } catch (Exception ex) { Error.AppendLine(string.Format("读取数据表:{0}的{1}字段出错:", tableEntity.TableName, column.Field) + ex.Message); } } } }