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); }; }
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(); }