当前位置: 首页>>代码示例>>C#>>正文


C# DbProviderFactory.GetType方法代码示例

本文整理汇总了C#中System.Data.Common.DbProviderFactory.GetType方法的典型用法代码示例。如果您正苦于以下问题:C# DbProviderFactory.GetType方法的具体用法?C# DbProviderFactory.GetType怎么用?C# DbProviderFactory.GetType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Data.Common.DbProviderFactory的用法示例。


在下文中一共展示了DbProviderFactory.GetType方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetProviderServices

        internal static DbProviderServices GetProviderServices(DbProviderFactory factory)
        {
            EDesignUtil.CheckArgumentNull(factory, "factory");

            // Special case SQL client so that it will work with System.Data from .NET 4.0 even without
            // a binding redirect.
            if (factory is SqlClientFactory)
            {
                return SqlProviderServices.Instance;
            }

            IServiceProvider serviceProvider = factory as IServiceProvider;
            if (serviceProvider == null)
            {
                throw MetadataUtil.ProviderIncompatible(System.Data.Entity.Design.Strings.EntityClient_DoesNotImplementIServiceProvider(
                    factory.GetType().ToString()));
            }

            DbProviderServices providerServices = serviceProvider.GetService(typeof(DbProviderServices)) as DbProviderServices;
            if (providerServices == null)
            {
                throw MetadataUtil.ProviderIncompatible(
                    System.Data.Entity.Design.Strings.EntityClient_ReturnedNullOnProviderMethod(
                        "GetService",
                        factory.GetType().ToString()));
            }
            return providerServices;
        }
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:28,代码来源:MetadataUtil.cs

示例2: InvariantNameResolver

        public InvariantNameResolver(DbProviderFactory providerFactory, string invariantName)
        {
            DebugCheck.NotNull(providerFactory);
            DebugCheck.NotEmpty(invariantName);

            _invariantName = new ProviderInvariantName(invariantName);
            _providerFactoryType = providerFactory.GetType();
        }
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:8,代码来源:InvariantNameResolver.cs

示例3: DatabaseDriver

        public DatabaseDriver(string driverName, DbProviderFactory factory) {
            Contract.Requires(!String.IsNullOrEmpty(driverName));
            Contract.Requires(factory != null);

            this.Factory = factory;
            var name = factory.GetType().FullName;
            this.Type = name.Substring(0,name.LastIndexOf('.'));
            this.Name = driverName;
        }
开发者ID:MagicWishMonkey,项目名称:aoi.net,代码行数:9,代码来源:DatabaseDriver.cs

示例4: InternalGetDatabaseType

        /// <summary>
        /// 获取数据库类型
        /// </summary>
        /// <param name="dbProvider">数据库提供者</param>
        /// <param name="connectionString">数据库连接字符串</param>
        /// <returns>数据库类型</returns>
        internal static DatabaseType InternalGetDatabaseType(DbProviderFactory dbProvider, String connectionString)
        {
            String providerName = dbProvider.GetType().ToString().ToLowerInvariant();
            DatabaseType dataType = DatabaseType.Unknown;

            foreach (KeyValuePair<String, DatabaseType> pair in _typeDict)
            {
                if (providerName.IndexOf(pair.Key) >= 0)
                {
                    dataType = pair.Value;
                    break;
                }
            }

            if (dataType != DatabaseType.Unknown)
            {
                return dataType;
            }

            #region Access
            if (providerName.IndexOf("system.data.oledb") >= 0)
            {
                String dataSource = "";
                String[] parameters = connectionString.Replace(" ", "").ToLowerInvariant().Split(';');

                if (parameters != null && parameters.Length > 0)
                {
                    Int32 dataSourcePos = -1;

                    for (Int32 i = 0; i < parameters.Length; i++)
                    {
                        dataSourcePos = parameters[i].IndexOf("datasource");

                        if (dataSourcePos > -1)
                        {
                            dataSource = parameters[i];
                            break;
                        }
                    }
                }

                if (dataSource.IndexOf(".mdb") > -1)
                {
                    return DatabaseType.Access;
                }
                else if (dataSource.IndexOf(".accdb") > -1)
                {
                    return DatabaseType.Access;
                }
            }
            #endregion

            return DatabaseType.Unknown;
        }
开发者ID:svcdn,项目名称:DotMaysWind.Data,代码行数:60,代码来源:DatabaseTypeHelper.cs

示例5: AssureKnownFactory

    /// <summary>
    /// Makes sure that the given <paramref name="dbProviderFactory"/> is registered inside global <see cref="DbProviderFactories"/>.
    /// It queries the needed information from the runtime type and creates a new entry inside <c>system.data</c> configuration section.
    /// Additionally the path of the factory is added to <see cref="AppDomain.CurrentDomain"/> as "PrivatePath" to allow 
    /// proper assembly lookup inside subfolder.
    /// </summary>
    /// <param name="dbProviderFactory">DbProviderFactory instance</param>
    public static void AssureKnownFactory(DbProviderFactory dbProviderFactory)
    {
      var dataSet = ConfigurationManager.GetSection("system.data") as DataSet;
      if (dataSet == null)
        return;

      Type factoryType = dbProviderFactory.GetType();
      string invariantName = factoryType.Namespace;
      DataTable dt = dataSet.Tables[0];
      if (dt.Rows.Cast<DataRow>().Any(row => row["InvariantName"].ToString() == invariantName))
        return;

      dt.Rows.Add(invariantName, "Temporary added factory for EF use", invariantName, factoryType.AssemblyQualifiedName);
      AppDomain.CurrentDomain.AppendPrivatePath(Path.GetDirectoryName(factoryType.Assembly.Location));
    }
开发者ID:chekiI,项目名称:MediaPortal-2,代码行数:22,代码来源:EntityFrameworkHelper.cs

示例6: CreateDbFactory

        /// <summary>
        /// Create an IDbFactory based on a DbProviderFactory.
        /// </summary>
        /// <param name="providerFactory">A DbProviderFactory as returned from DbProviderFactories.GetFactory()</param>
        /// <returns>An object implementing IDbFactory for the provider requested.</returns>
        /// <exception cref="DatabaseException"></exception>
        /// <exception cref="ArgumentNullException"></exception>
        public static IDbFactory CreateDbFactory(DbProviderFactory providerFactory)
        {
            if (providerFactory == null)
                throw new ArgumentNullException("providerFactory");

            IDbFactory dbFactory;
            if (providerFactory is System.Data.SqlClient.SqlClientFactory)
                dbFactory = new SqlClientDbFactory(providerFactory as System.Data.SqlClient.SqlClientFactory);
            //else if (providerFactory is System.Data.Odbc.OdbcFactory)
            //    dbFactory = new DbFactoryOdbc(providerFactory as System.Data.Odbc.OdbcFactory);
            //else if (providerFactory is System.Data.OleDb.OleDbFactory)
            //    dbFactory = new DbFactoryOleDb(providerFactory as System.Data.OleDb.OleDbFactory);
            else
                throw new DataException("DbFactoryMaker has no support for DbProviderFactory of type " + providerFactory.GetType().FullName);

            return dbFactory;
        }
开发者ID:helgihaf,项目名称:Alpha,代码行数:24,代码来源:DbFactoryMaker.cs

示例7: DynamicModel

 public DynamicModel(string connectionStringName = "", string tableName = "", string primaryKeyField = "")
 {
     TableName = tableName == "" ? this.GetType().Name : tableName;
     PrimaryKeyField = string.IsNullOrEmpty(primaryKeyField) ? "ID" : primaryKeyField;
     if (connectionStringName == "")
         connectionStringName = ConfigurationManager.ConnectionStrings[0].Name;
     var _providerName = "System.Data.SqlClient";
     if (ConfigurationManager.ConnectionStrings[connectionStringName] != null) {
         if (!string.IsNullOrEmpty(ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName))
             _providerName = ConfigurationManager.ConnectionStrings[connectionStringName].ProviderName;
     } else {
         throw new InvalidOperationException("Can't find a connection string with the name '" + connectionStringName + "'");
     }
     _factory = DbProviderFactories.GetFactory(_providerName);
     _connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
     _prefix = _factory.GetType().FullName.Contains("Oracle") ? ":" : "@";
 }
开发者ID:goyuix,项目名称:massive,代码行数:17,代码来源:Massive.cs

示例8: OracleTimestampConverter

        public OracleTimestampConverter(DbProviderFactory factory)
        {
            OracleAssembly = factory.GetType().Assembly;
            var globalizationType = OracleAssembly.GetType("Oracle.DataAccess.Client.OracleGlobalization");
            if (globalizationType != null)
            {
                DateTimeOffsetInputFormat = DateTimeOffsetOutputFormat = "yyyy-MM-dd HH:mm:ss.ffffff zzz";
                TimestampTzFormat = "YYYY-MM-DD HH24:MI:SS.FF6 TZH:TZM";

                SetThreadInfoArgs = new [] {globalizationType.InvokeMember("GetClientInfo", InvokeStaticPublic, null, null, null)};
                const BindingFlags setProperty = BindingFlags.Public | BindingFlags.SetProperty | BindingFlags.Instance;
                globalizationType.InvokeMember("TimeStampTZFormat", setProperty, null, SetThreadInfoArgs[0], new object[] { TimestampTzFormat });
                SetThreadInfo = globalizationType.GetMethod("SetThreadInfo", BindingFlags.Public | BindingFlags.Static);

                var parameterType = OracleAssembly.GetType("Oracle.DataAccess.Client.OracleParameter");
                var oracleDbTypeProperty = parameterType.GetProperty("OracleDbType", BindingFlags.Public | BindingFlags.Instance);
                SetOracleDbType = oracleDbTypeProperty.GetSetMethod();

                var oracleDbType = OracleAssembly.GetType("Oracle.DataAccess.Client.OracleDbType");
                SetOracleDbTypeArgs = new [] {Enum.Parse(oracleDbType, "TimeStampTZ")};

                var readerType = OracleAssembly.GetType("Oracle.DataAccess.Client.OracleDataReader");
                GetOracleValue = readerType.GetMethod("GetOracleValue", BindingFlags.Public | BindingFlags.Instance);
            }
            else
            {
                //TODO This is Microsoft provider support and it does not handle the offsets correctly,
                // but I don't know how to make it work.

                DateTimeOffsetOutputFormat = "dd-MMM-yy hh:mm:ss.fff tt";
                DateTimeOffsetInputFormat = "dd-MMM-yy hh:mm:ss tt";
                TimestampTzFormat = "DD-MON-RR HH.MI.SSXFF AM";

//                var parameterType = OracleAssembly.GetType("System.Data.OracleClient.OracleParameter");
//                var oracleTypeProperty = parameterType.GetProperty("OracleType", BindingFlags.Public | BindingFlags.Instance);
//                SetOracleDbType = oracleTypeProperty.GetSetMethod();

                var oracleDbType = OracleAssembly.GetType("System.Data.OracleClient.OracleType");
                SetOracleDbTypeArgs = new [] {Enum.Parse(oracleDbType, "TimestampWithTZ")};

//                var readerType = OracleAssembly.GetType("System.Data.OracleClient.OracleDataReader");
//                GetOracleValue = readerType.GetMethod("GetOracleValue", BindingFlags.Public | BindingFlags.Instance);
            }
        }
开发者ID:dbillingham,项目名称:ServiceStack.OrmLite,代码行数:44,代码来源:OracleTimestampConverter.cs

示例9: GetStoreConnection

 /// <summary>
 /// Uses DbProviderFactory to create a DbConnection
 /// </summary>
 private DbConnection GetStoreConnection(DbProviderFactory factory)
 {
     DbConnection storeConnection = factory.CreateConnection();
     if (storeConnection == null)
     {
         throw EntityUtil.ProviderIncompatible(System.Data.Entity.Strings.EntityClient_ReturnedNullOnProviderMethod("CreateConnection", factory.GetType().Name));
     }
     return storeConnection;
 }
开发者ID:uQr,项目名称:referencesource,代码行数:12,代码来源:EntityConnection.cs

示例10: RelationalDatabaseWriter

		public RelationalDatabaseWriter( DocumentDatabase database, SqlReplicationConfig cfg, SqlReplicationStatistics replicationStatistics)
		{
			this.database = database;
			this.cfg = cfg;
			this.replicationStatistics = replicationStatistics;

			providerFactory = GetDbProviderFactory(cfg);

			commandBuilder = providerFactory.CreateCommandBuilder();
			connection = providerFactory.CreateConnection();

			Debug.Assert(connection != null);
			Debug.Assert(commandBuilder != null);

			connection.ConnectionString = cfg.ConnectionString;

			try
			{
				connection.Open();
			}
			catch (Exception e)
			{
				database.AddAlert(new Alert
				{
					AlertLevel = AlertLevel.Error,
					CreatedAt = SystemTime.UtcNow,
					Exception = e.ToString(),
					Title = "Sql Replication could not open connection",
					Message = "Sql Replication could not open connection to " + connection.ConnectionString,
					UniqueKey = "Sql Replication Connection Error: " + connection.ConnectionString
				});
				throw;
			}

			tx = connection.BeginTransaction();

			stringParserList = new List<Func<DbParameter, string, bool>> { 
				(colParam, value) => {
					if( char.IsDigit( value[ 0 ] ) ) {
							DateTime dateTime;
							if (DateTime.TryParseExact(value, Default.OnlyDateTimeFormat, CultureInfo.InvariantCulture,
														DateTimeStyles.RoundtripKind, out dateTime))
							{
								switch( providerFactory.GetType( ).Name ) {
									case "MySqlClientFactory":
										colParam.Value = dateTime.ToString( "yyyy-MM-dd HH:mm:ss.ffffff" );
										break;
									default:
										colParam.Value = dateTime;
										break;
								}
								return true;
							}
					}
					return false;
				},
				(colParam, value) => {
					if( char.IsDigit( value[ 0 ] ) ) {
						DateTimeOffset dateTimeOffset;
						if( DateTimeOffset.TryParseExact( value, Default.DateTimeFormatsToRead, CultureInfo.InvariantCulture,
														 DateTimeStyles.RoundtripKind, out dateTimeOffset ) ) {
							switch( providerFactory.GetType( ).Name ) {
								case "MySqlClientFactory":
									colParam.Value = dateTimeOffset.ToUniversalTime().ToString( "yyyy-MM-dd HH:mm:ss.ffffff" );
									break;
								default:
									colParam.Value = dateTimeOffset;
									break;
							}
							return true;
						}
					}
					return false;
				}
			};
		}
开发者ID:925coder,项目名称:ravendb,代码行数:76,代码来源:RelationalDatabaseWriter.cs

示例11: OracleDoubleConverter

 public OracleDoubleConverter(DbProviderFactory factory)
 {
     OracleAssembly = factory.GetType().Assembly;
     var readerType = OracleAssembly.GetType("Oracle.DataAccess.Client.OracleDataReader");
     GetOracleValue = readerType.GetMethod("GetOracleValue", BindingFlags.Public | BindingFlags.Instance);
 }
开发者ID:jessemcdowell-AI,项目名称:ServiceStack.OrmLite,代码行数:6,代码来源:OracleDoubleConverter.cs

示例12: Create

        /// <summary>
        /// Creates an instance of a query runner for the specified database.
        /// </summary>
        /// <param name="factory">The factory.</param>
        /// <param name="connectionString">The connection string.</param>
        /// <param name="enableQueryBatching">The enable query batching.</param>
        /// <param name="commandTimeout">The command timeout.</param>
        /// <returns>
        /// A <see cref="QueryRunner"/> instance acording to the parameters.
        /// </returns>
        /// <remarks>
        /// 	<example>
        /// var runner = QueryRunner.Create(DbProviderFactories.GetFactory("System.Data.SqlClient"), connStr, true);
        /// runner.ExecuteQuery("select * from Employees\r\nGO\r\nSelect * from Products");
        /// // runner.Batch.Queries.Count == 2 //
        /// </example>
        /// </remarks>
        public static QueryRunner Create(DbProviderFactory factory, string connectionString, bool enableQueryBatching, int commandTimeout)
        {
            if (factory.GetType().Name == "SqlClientFactory")
            {
                return new SqlQueryRunner(factory, connectionString, enableQueryBatching, commandTimeout);
            }

            // otherwise ise the default
            return new QueryRunner(factory, connectionString, enableQueryBatching, commandTimeout);
        }
开发者ID:SyedMdKamruzzaman,项目名称:sap_interface,代码行数:27,代码来源:QueryRunner.cs

示例13: RegisterFromConnectionStringSettings

 private void RegisterFromConnectionStringSettings(ConnectionStringSettings cs)
 {
     ConnectionString = cs.ConnectionString;
     Provider = DbProviderFactories.GetFactory(cs.ProviderName);
     _hash = string.Concat(ConnectionString, Provider.GetType().AssemblyQualifiedName).GetHashCode();
 }
开发者ID:axefrog,项目名称:XRepository,代码行数:6,代码来源:ConnectionSource.cs

示例14: GetDbProviderFactorySecure

        /// <devdoc>
        /// Gets the DbProviderFactory and performs a security check.
        /// </devdoc>
        private DbProviderFactory GetDbProviderFactorySecure() {
            if (_providerFactory == null) {
                _providerFactory = GetDbProviderFactory();

                Debug.Assert(_providerFactory != null);

                if (!HttpRuntime.DisableProcessRequestInApplicationTrust) {
                    // Perform security check if we're not running in application trust
                    if (!HttpRuntime.ProcessRequestInApplicationTrust && !HttpRuntime.HasDbPermission(_providerFactory)) {
                        throw new HttpException(SR.GetString(SR.SqlDataSource_NoDbPermission, _providerFactory.GetType().Name, ID));
                    }
                }
            }
            return _providerFactory;
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:18,代码来源:SqlDataSource.cs

示例15: DbHelper

            public DbHelper(int tenant, ConnectionStringSettings connectionString)
            {
                this.tenant = tenant;
                factory = connectionString.ProviderName == "System.Data.SQLite" ? GetSQLiteFactory() : GetMySqlFactory();
                builder = factory.CreateCommandBuilder();
                connect = factory.CreateConnection();
                connect.ConnectionString = connectionString.ConnectionString;
                connect.Open();

                if (factory.GetType().Name == "MySqlClientFactory")
                {
                    CreateCommand("set @@session.sql_mode = concat(@@session.sql_mode, ',NO_AUTO_VALUE_ON_ZERO')").ExecuteNonQuery();
                }

                columns = connect.GetSchema("Columns");

                whereExceptions["calendar_calendar_item"] = " where calendar_id in (select id from calendar_calendars where tenant = " + tenant + ") ";
                whereExceptions["calendar_calendar_user"] = " where calendar_id in (select id from calendar_calendars where tenant = " + tenant + ") ";
                whereExceptions["calendar_event_item"] = " where event_id in (select id from calendar_events where tenant = " + tenant + ") ";
                whereExceptions["calendar_event_user"] = " where event_id in (select id from calendar_events where tenant = " + tenant + ") ";
                whereExceptions["crm_entity_contact"] = " where contact_id in (select id from crm_contact where tenant_id = " + tenant + ") ";
                whereExceptions["crm_entity_tag"] = " where tag_id in (select id from crm_tag where tenant_id = " + tenant + ") ";
                whereExceptions["files_folder_tree"] = " where folder_id in (select id from files_folder where tenant_id = " + tenant + ") ";
                whereExceptions["forum_answer_variant"] = " where answer_id in (select id from forum_answer where tenantid = " + tenant + ")";
                whereExceptions["forum_topic_tag"] = " where topic_id in (select id from forum_topic where tenantid = " + tenant + ")";
                whereExceptions["forum_variant"] = " where question_id in (select id from forum_question where tenantid = " + tenant + ")";
                whereExceptions["projects_project_participant"] = " where project_id in (select id from projects_projects where tenant_id = " + tenant + ")";
                whereExceptions["projects_following_project_participant"] = " where project_id in (select id from projects_projects where tenant_id = " + tenant + ")";
                whereExceptions["projects_project_tag"] = " where project_id in (select id from projects_projects where tenant_id = " + tenant + ")";
                whereExceptions["projects_project_tag_change_request"] = " where project_id in (select id from projects_projects where tenant_id = " + tenant + ")";
                whereExceptions["tenants_tenants"] = " where id = " + tenant;
                whereExceptions["webstudio_widgetstate"] = " where widgetcontainerid in (select id from webstudio_widgetcontainer where tenantid = " + tenant + ")";
                whereExceptions["core_usersecurity"] = " where userid in (select id from core_user where tenant = " + tenant + ")";
                whereExceptions["core_acl"] = " where tenant = " + tenant + " or tenant = -1";
                whereExceptions["core_subscription"] = " where tenant = " + tenant + " or tenant = -1";
                whereExceptions["core_subscriptionmethod"] = " where tenant = " + tenant + " or tenant = -1";
            }
开发者ID:ridhouan,项目名称:teamlab.v6.5,代码行数:37,代码来源:DbBackupProvider.cs


注:本文中的System.Data.Common.DbProviderFactory.GetType方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。