Exemple #1
0
        /// <summary>
        /// 获取实体属性的类型Type
        /// </summary>
        /// <typeparam name="T">泛型T</typeparam>
        /// <param name="propName">属性名称</param>
        /// <returns></returns>
        private static Type GetPropType <T>(string propName)
        {
            DbMapInfo dbInfo     = null;
            Type      result     = DefaultType;
            Type      entityType = typeof(T);

            if (EFTypeDescriptionCache.MemberDict.TryGetValue(entityType.FullName, out dbInfo))
            {
                ColumnMapInfo cmi = null;
                if (dbInfo.CacheColumnMapInfos.TryGetValue(propName, out cmi))
                {
                    result = cmi.PropType;
                }
            }
            else
            {
                var pInfo = entityType.GetProperty(propName, BindFlags);
                result = pInfo == null ? DefaultType : pInfo.PropertyType;
            }
            if (result.IsEnum)
            {
                result = Enum.GetUnderlyingType(result);
            }
            return(result);
        }
Exemple #2
0
        public DataTable GetExportData(string FondsNumber, string FileNumber, PageQueryParam Param, List <Condition> Conditions, out Dictionary <string, ColumnMapInfo> mapInfos)
        {
            var source = this.GetFileData(FondsNumber, FileNumber, Param, Conditions);

            var k      = string.Format("BusinessSystem.{0}.Structure.Fonds.{1}.FileLibrary.{2}.Field.", ConstValue.BusinessKey, FondsNumber, FileNumber);
            var fields = _IFieldService.GetFields(k, "");

            var removeColumns = new List <DataColumn>();

            mapInfos = new Dictionary <string, ColumnMapInfo>();
            var baseDataDic = new Dictionary <string, Dictionary <string, string> >();

            foreach (DataColumn column in source.Source.Columns)
            {
                var field = fields.FirstOrDefault(f => "_f" + f.ID == column.ColumnName);

                var mapInfo = new ColumnMapInfo();

                if (field != null)
                {
                    mapInfo.HeadText = field.Name;

                    if (field.DataType == (int)FieldDataTypeEnum.基础数据)
                    {
                        mapInfo.HasBaseData = true;
                        mapInfo.Values      = _IEnum.GetEnumDic(ConstValue.BusinessKey, field.BaseData);
                    }

                    mapInfos.Add(column.ColumnName, mapInfo);
                }

                else if (column.ColumnName == "FondsNumber")
                {
                    mapInfo.HeadText = "全宗号";
                    mapInfos.Add(column.ColumnName, mapInfo);
                }
                else if (column.ColumnName == "Status")
                {
                    mapInfo.HeadText    = "状态";
                    mapInfo.HasBaseData = true;
                    mapInfo.Values      = _IEnum.GetEnumDic(ConstValue.BusinessKey, "FileStatus");
                    mapInfos.Add(column.ColumnName, mapInfo);
                }
                else
                {
                    removeColumns.Add(column);
                }
            }

            foreach (var item in removeColumns)
            {
                source.Source.Columns.Remove(item);
            }

            return(source.Source);
        }
        public ConfigDatabaseWriter(int dataSourceId, int systemDataSourceId)
        {
            InitializeComponent();
            this.FontFamily = SystemFonts.MessageFontFamily;
            this.FontSize   = SystemFonts.MessageFontSize;
            this.FontStyle  = SystemFonts.MessageFontStyle;
            this.FontWeight = SystemFonts.MessageFontWeight;

            this.DataSourceId       = dataSourceId;
            this.SystemDataSourceId = systemDataSourceId;
            ConnectionStringKeys    = new Manager().GetDataSourceKeysConnectionStrings(this.DataSourceId, false);
            SystemAttributes        = new Manager().GetAttributes(this.SystemDataSourceId);
            DatabaseColumnMapInfo   = new ColumnMapInfo(this.DataSourceId);
            _ColumnMapInfos         = new ObservableCollection <ColumnMapInfo>();
            TableNames = new ObservableCollection <string>();
            BindData();
            this.DataContext = this;
        }