/// <summary> /// 创建DatabaseSchemaContext实例。 /// </summary> /// <param name="dataContext">DataContext对象</param> public DatabaseSchemaContext(Symbol.Data.IDataContext dataContext) { _dataContext = dataContext; _databaseName = dataContext.Connection.Database; _log = LogBase.Empty; _vars = new Symbol.Collections.Generic.NameValueCollection <object>(); _vars.Add("log", _log); _vars.Add("dataContext", _dataContext); _vars.Add("databaseName", _databaseName); }
static PostgreSQLProvider() { _types = new Collections.Generic.NameValueCollection <System.Type>(); #if netcore || net45 _types.Add("Npgsql.NpgsqlConnection", typeof(Npgsql.NpgsqlConnection)); _types.Add("Npgsql.NpgsqlConnectionStringBuilder", typeof(Npgsql.NpgsqlConnectionStringBuilder)); _types.Add("NpgsqlTypes.NpgsqlDbType", typeof(NpgsqlTypes.NpgsqlDbType)); #else GetType("Npgsql.NpgsqlConnection"); GetType("Npgsql.NpgsqlConnectionStringBuilder"); GetType("NpgsqlTypes.NpgsqlDbType"); #endif }
static MySqlProvider() { _types = new Collections.Generic.NameValueCollection <System.Type>(); #if netcore || net452 _types.Add("MySql.Data.MySqlClient.MySqlConnection", typeof(MySql.Data.MySqlClient.MySqlConnection)); _types.Add("MySql.Data.MySqlClient.MySqlConnectionStringBuilder", typeof(MySql.Data.MySqlClient.MySqlConnectionStringBuilder)); _types.Add("MySql.Data.MySqlClient.MySqlDbType", typeof(MySql.Data.MySqlClient.MySqlDbType)); #else GetType("MySql.Data.MySqlClient.MySqlConnection"); GetType("MySql.Data.MySqlClient.MySqlConnectionStringBuilder"); GetType("MySql.Data.MySqlClient.MySqlDbType"); #endif }
/// <summary> /// 获取类型 /// </summary> /// <param name="name">类型名称</param> /// <returns></returns> public static FastWrapper GetType(string name) { if (string.IsNullOrEmpty(name)) { return(null); } FastWrapper wrapper; if (_types.TryGetValue(name, out wrapper)) { return(wrapper); } if (_types.TryGetValue(name, out wrapper)) { return(wrapper); } try { System.Type type = _assemblies[0].GetType(name); if (type == null) { return(null); } wrapper = new FastWrapper(type, false); _types.Add(name, wrapper); return(wrapper); } catch { return(null); } }