Exemple #1
0
        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);
                    }
                }
            }
        }