public List<String> CheckMappingTableIsExist( IDbCommand cmd, String db, List<String> existTables, MappingClass mapping ) { foreach( KeyValuePair<String, EntityInfo> kv in mapping.ClassList ) { EntityInfo entity = kv.Value; if (entity.Database.Equals( db ) == false) continue; if (!isTableCreated( existTables, entity )) { existTables = createTable( entity, cmd, existTables, mapping.ClassList ); } } return existTables; }
public List<String> CheckMappingTableIsExist( IDbCommand cmd, String db, List<String> existTables, MappingClass mapping ) { foreach (DictionaryEntry entry in mapping.ClassList) { EntityInfo entity = entry.Value as EntityInfo; if (entity.Database.Equals( db ) == false) continue; if (!isTableCreated( existTables, entity )) { existTables = createTable( entity, cmd, existTables, mapping.ClassList ); } } return existTables; }
public void CheckTable( MappingClass mapping, String db ) { logger.Info( "[access] begin check table" ); OleDbConnection connection = DataFactory.GetConnection( _connectionString, this.DatabaseType ) as OleDbConnection; connection.Open(); IDbCommand cmd = new OleDbCommand(); cmd.Connection = connection; object[] restrictions = new object[4]; restrictions[3] = "TABLE"; DataTable oleDbSchemaTable = connection.GetOleDbSchemaTable( OleDbSchemaGuid.Tables, restrictions ); foreach (DataRow row in oleDbSchemaTable.Rows) { existTables.Add( row["TABLE_NAME"].ToString() ); logger.Info( "table found:" + row["TABLE_NAME"].ToString() ); } existTables = new AccessTableBuilder().CheckMappingTableIsExist( cmd, db, existTables, mapping ); connection.Close(); }
public void CheckTable( MappingClass mapping, String db ) { logger.Info( "[sqlserver] begin check table" ); SqlConnection connection = new SqlConnection( _connectionString ); connection.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = connection; cmd.CommandText = "SELECT OBJECT_NAME(id) as name FROM sysobjects WHERE xtype='U' AND OBJECTPROPERTY(id, 'IsMSShipped') = 0"; SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { existTables.Add( reader["name"].ToString() ); logger.Info( "table found:" + reader["name"].ToString() ); } reader.Close(); existTables = new SqlServerTableBuilder().CheckMappingTableIsExist( cmd, db, existTables, mapping ); connection.Close(); }
private static void cacheInterceptor(MappingClass map) { List <object> interceptor = DbConfig.Instance.Interceptor; for (int i = 0; i < interceptor.Count; i++) { Dictionary <String, object> info = interceptor[i] as Dictionary <String, object>; String asmName = info["AssemblyName"].ToString(); String typeName = info["TypeFullName"].ToString(); IInterceptor obj = rft.GetInstance(asmName, typeName) as IInterceptor; if (obj == null) { throw new Exception("load ORM interceptor error( Assembly:" + asmName + ", Type:" + typeName + ")"); } map.InterceptorList.Add(obj); } }
private static void createDB(MappingClass map) { logger.Info("begin create database ..."); DatabaseType dbtype = DatabaseType.Access; IDatabaseChecker databaseChecker = DataFactory.GetDatabaseChecker(dbtype); databaseChecker.DatabaseType = dbtype; logger.Info("CheckDatabase"); databaseChecker.CheckDatabase(); logger.Info("CheckTable"); databaseChecker.CheckTable(map, DbConfig.DefaultDbName); logger.Info("GetTables"); map.TableList = databaseChecker.GetTables(); }
public void CheckTable( MappingClass mapping, String db ) { logger.Info( "[mysql] begin check table" ); IDbConnection connection = DataFactory.GetConnection( _connectionString, this.DatabaseType ); connection.Open(); IDbCommand cmd = connection.CreateCommand(); cmd.CommandText = "show tables"; IDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { existTables.Add( reader[0].ToString() ); logger.Info( "table found£º" + reader[0].ToString() ); } reader.Close(); existTables = new MySqlTableBuilder().CheckMappingTableIsExist( cmd, db, existTables, mapping ); connection.Close(); }
public static MappingClass loadByReflection() { logger.Info("loadByReflection"); IList asmList = DbConfig.Instance.AssemblyList; MappingClass map = new MappingClass(); for (int i = 0; i < asmList.Count; i++) { Assembly assembly = ObjectContext.LoadAssembly(asmList[i].ToString()); map.AssemblyList[asmList[i].ToString()] = assembly; Type[] typeArray = ObjectContext.FindTypes(asmList[i].ToString()); foreach (Type type in typeArray) { ResolveOneType(map, type); } logger.Info("loaded assembly: " + assembly.FullName); } logger.Info("FinishPropertyInfo"); FinishPropertyInfo(map.ClassList); logger.Info("cacheInterceptor"); cacheInterceptor(map); logger.Info("AccessorUtil.Init"); MetaList list = new MetaList(map.AssemblyList, map.ClassList); map.FactoryList = AccessorUtil.Init(list); checkMultiDB(map); return(map); }
//------------------------------------------------------------------------------ private static void ResolveOneType( MappingClass map, Type t ) { map.TypeList.Add( t.FullName, t ); //if (!t.IsAbstract && ( t.IsSubclassOf( typeof( ObjectBase ) ) || t is IEntity )) { // map.ClassList[t.FullName] = EntityInfo.GetByType( t ); // logger.Info( "Loading Type : " + t.FullName ); //} // 1029 logger.Info( "Loading Type : " + t.FullName ); if (rft.IsInterface( t, typeof( IEntity ) ) && !OrmHelper.IsEntityBase( t )) { map.ClassList.Add( t.FullName, EntityInfo.GetByType( t ) ); } }
private static void createDB( MappingClass map ) { logger.Info( "begin create database ..." ); DatabaseType dbtype = DatabaseType.Access; IDatabaseChecker databaseChecker = DataFactory.GetDatabaseChecker( dbtype ); databaseChecker.DatabaseType = dbtype; logger.Info( "CheckDatabase" ); databaseChecker.CheckDatabase(); logger.Info( "CheckTable" ); databaseChecker.CheckTable( map, DbConfig.DefaultDbName ); logger.Info( "GetTables" ); map.TableList = databaseChecker.GetTables(); }
private static void checkMultiDB( MappingClass map ) { if (DbConfig.Instance.IsCheckDatabase == false) { logger.Info( "skip check database" ); return; } if (map.TableList == null) map.TableList = new List<String>(); if (DbConfig.Instance.ConnectionStringTable == null || DbConfig.Instance.ConnectionStringTable.Count == 0) { createDB( map ); return; } logger.Info( "begin check database..." ); foreach (KeyValuePair<String, ConnectionString> kv in DbConfig.Instance.GetConnectionStringMap()) { String connectionString = kv.Value.StringContent; if (strUtil.IsNullOrEmpty( connectionString )) throw new NotImplementedException( lang.get( "exConnectionString" ) + ":" + kv.Key ); DatabaseType dbtype = kv.Value.DbType; IDatabaseChecker databaseChecker = DataFactory.GetDatabaseChecker( dbtype ); databaseChecker.ConnectionString = connectionString; databaseChecker.DatabaseType = dbtype; logger.Info( "CheckDatabase" ); databaseChecker.CheckDatabase(); logger.Info( "CheckTable" ); databaseChecker.CheckTable( map, kv.Key ); logger.Info( "GetTables" ); map.TableList.AddRange( databaseChecker.GetTables() ); } logger.Info( "end check database..." ); }
private static void cacheInterceptor( MappingClass map ) { List<object> interceptor = DbConfig.Instance.Interceptor; for (int i = 0; i < interceptor.Count; i++) { Dictionary<String, object> info = interceptor[i] as Dictionary<String, object>; String asmName = info["AssemblyName"].ToString(); String typeName = info["TypeFullName"].ToString(); IInterceptor obj = rft.GetInstance( asmName, typeName ) as IInterceptor; if (obj == null) { throw new Exception( "load ORM interceptor error( Assembly:" + asmName + ", Type:" + typeName + ")" ); } map.InterceptorList.Add( obj ); } }
public static MappingClass loadByReflection() { logger.Info( "loadByReflection" ); IList asmList = DbConfig.Instance.AssemblyList; MappingClass map = new MappingClass(); for (int i = 0; i < asmList.Count; i++) { Assembly assembly = ObjectContext.LoadAssembly( asmList[i].ToString() ); map.AssemblyList[asmList[i].ToString()] = assembly; Type[] typeArray = ObjectContext.FindTypes( asmList[i].ToString() ); foreach (Type type in typeArray) { ResolveOneType( map, type ); } logger.Info( "loaded assembly: " + assembly.FullName ); } logger.Info( "FinishPropertyInfo" ); FinishPropertyInfo( map.ClassList ); logger.Info( "cacheInterceptor" ); cacheInterceptor( map ); logger.Info( "AccessorUtil.Init" ); MetaList list = new MetaList( map.AssemblyList, map.ClassList ); map.FactoryList = AccessorUtil.Init( list ); checkMultiDB( map ); return map; }
public static void Clear() { _instance = null; }
public static void createDB(MappingClass map, DatabaseType DBType, string StringContent, string db) { logger.Info("begin create database ..."); String connectionString = StringContent; if (strUtil.IsNullOrEmpty(connectionString)) throw new NotImplementedException(lang.get("exConnectionString") + ":" + db); DatabaseType dbtype = DBType; IDatabaseChecker databaseChecker = DataFactory.GetDatabaseChecker(dbtype); databaseChecker.ConnectionString = connectionString; databaseChecker.DatabaseType = dbtype; logger.Info("CheckDatabase"); databaseChecker.CheckDatabase(); logger.Info("CheckTable"); databaseChecker.CheckTable(map, db); logger.Info("GetTables"); map.TableList.AddRange(databaseChecker.GetTables()); }