Exemple #1
0
        public Entry()
        {
            if (InternalOrmDBPlatform != null)
            {
                OrmHost = InternalOrmDBPlatform;
            }

            InternalInit();
        }
        void AssignLogHandler(OrmDBPlatform orm)
        {
            orm.InfoInvoker = (obj, info) =>
            {
                InfoLogMessageQueue.Enqueue(info.ToString());
            };

            orm.ErrorInvoker = (obj, ex) =>
            {
                ErrorMessageQueue.Enqueue(ex);
            };
        }
Exemple #3
0
        public static List <T> ToEnityList <T>(this DataTable dt, OrmDBPlatform orm) where T : EntityBase
        {
            Func <Type, String> GetTableName = (EntityType) =>
            {
                String tableName = EntityType.Name;
                if (tableName.EndsWith("Entity") && tableName != "Entity")
                {
                    if (tableName.EndsWith("_Entity"))
                    {
                        tableName = tableName.Remove(tableName.Length - "_Entity".Length, "_Entity".Length);
                    }
                    if (tableName.EndsWith("Entity"))
                    {
                        tableName = tableName.Remove(tableName.Length - "Entity".Length, "Entity".Length);
                    }
                }

                return(tableName);
            };
            String tableName = GetTableName(typeof(T));

            List <T> EntitySet = new List <T>();



            int nFileCount = dt.Columns == null ? 0:dt.Columns.Count;

            int nRowCount = dt.Rows == null ? 0 : dt.Rows.Count;


            if (nRowCount > 0)//如果有数据
            {
                for (int i = 0; i < nRowCount; i++)
                {
                    dotNetLab.Data.Orm.EntityBase entity = (dotNetLab.Data.Orm.EntityBase)System.Activator.CreateInstance(typeof(T));
                    for (int j = 0; j < nFileCount; j++) //逐个字段的遍历
                    {
                        Object obj = dt.Rows[i][j];
                        entity.OrmHost = orm;
                        String colName = dt.Columns[j].ColumnName;
                        entity.AssignValue(colName, obj);
                    }
                    EntitySet.Add((T)entity);
                }
            }
            return(EntitySet);
        }
        /// <summary>
        /// 初始化主数据库用于全局使用数据库
        /// 这个对象会把所有实体映射为表
        /// 监测实体变更,将变更应用到数据库表中
        /// </summary>
        void GetMainDbContext()
        {
            MainDbOrmPlatform = new OrmDBPlatform();
            AssignLogHandler(MainDbOrmPlatform);
            BeginMeasureDBConnectTime();
            bool args = (bool)ConnectDBAction?.Invoke(MainDbOrmPlatform);

            EndMeasureDBConnectTime();
            if (args)
            {
                InfoLogMessageQueue.Enqueue($"连接{MainDbOrmPlatform.AdonetContext.GetType().Name}数据库引擎成功");
            }
            else
            {
                ErrorMessageQueue.Enqueue(new Exception($"连接{MainDbOrmPlatform.AdonetContext.GetType().Name}数据库引擎失败"));
            }
        }
        public App()
        {
            InitializeComponent();

            if (asm_Sqlite != null)
            {
                DbContext = new OrmDBPlatform();
                SQLiteDBEngine.assembly_Sqlite_Connection = asm_Sqlite;
                bool b = DbContext.Connect("你的sqlite 数据库文件路径");
                if (b)
                {
                    Console.WriteLine("sqlite 数据库已经连接");
                }
                else
                {
                    Console.WriteLine("sqlite 数据库未连接");
                }
            }

            MainPage = new MainPage();
        }