예제 #1
0
        public List <XPDataObject> GetObjectsFromDataSource()
        {
            if (DataSource == null)
            {
                throw new InvalidOperationException("DataSource Is null");
            }

            DataSource.Fill(null);
            XPDictionary xpDictionary = DevExpress.ExpressApp.Xpo.XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary;
            var          newClass     = xpDictionary.CreateClass($"NewClass{ID}", new NonPersistentAttribute());

            if (ExcelDataSource != null)
            {
                foreach (var item in ExcelDataSource.Schema)
                {
                    newClass.CreateMember(item.Name, Type.GetType(item.Type.ToString()));
                }
            }
            if (SqlDataSource != null)
            {
                foreach (var item in SqlDataSource.Result.FirstOrDefault().Columns)
                {
                    newClass.CreateMember(item.Name, item.Type);
                }
            }

            XafTypesInfo.Instance.RefreshInfo(newClass.ClassType);

            return(ExcelDataSource != null?GetListFromExcelDataSource(newClass) : GetListFromSqlDatasource(newClass));
        }
        public XPClassInfo CreateClass(XPDictionary dictionary)
        {
            XPClassInfo result = dictionary.QueryClassInfo(AssemblyName, Name);

            if (result == null)
            {
                XPClassInfo baseClassInfo;
                if (BaseClass != null)
                {
                    baseClassInfo = BaseClass.CreateClass(dictionary);
                }
                else
                {
                    baseClassInfo = dictionary.GetClassInfo(GetDefaultBaseClass());
                }
                result = dictionary.CreateClass(baseClassInfo, Name);
                CreateAttributes(result);
            }
            return(result);
        }
예제 #3
0
        public static XPClassInfo AddClass(XPDictionary dict, DBTable table)
        {
            if (table.PrimaryKey.Columns.Count > 1)
            {
                throw new NotSupportedException("Compound primary keys are not supported");
            }
            XPClassInfo classInfo = dict.CreateClass(dict.GetClassInfo(typeof(BasePersistentClass)), table.Name.Replace('.', '_'));

            classInfo.AddAttribute(new PersistentAttribute(table.Name));
            DBColumnType primaryColumnType = table.GetColumn(table.PrimaryKey.Columns[0]).ColumnType;

            classInfo.CreateMember(table.PrimaryKey.Columns[0], DBColumn.GetType(primaryColumnType),
                                   new KeyAttribute(IsAutoGenerationSupported(primaryColumnType)));
            foreach (DBColumn col in table.Columns)
            {
                if (!col.IsKey && col.ColumnType != DBColumnType.Unknown)
                {
                    classInfo.CreateMember(col.Name, DBColumn.GetType(col.ColumnType));
                }
            }
            return(classInfo);
        }