Example #1
0
 public DbProviderFactory GetProviderFactory(
     DbConnection connection,
     IEnumerable <DataRow> dataRows)
 {
     return(this._cache.GetOrAdd(connection.GetType(), (Func <Type, DbProviderFactory>)(t =>
     {
         DataRow providerRow = this._finder.FindRow(t, (Func <DataRow, bool>)(r => Net40DefaultDbProviderFactoryResolver.ExactMatch(r, t)), dataRows) ?? this._finder.FindRow((Type)null, (Func <DataRow, bool>)(r => Net40DefaultDbProviderFactoryResolver.ExactMatch(r, t)), dataRows) ?? this._finder.FindRow(t, (Func <DataRow, bool>)(r => Net40DefaultDbProviderFactoryResolver.AssignableMatch(r, t)), dataRows) ?? this._finder.FindRow((Type)null, (Func <DataRow, bool>)(r => Net40DefaultDbProviderFactoryResolver.AssignableMatch(r, t)), dataRows);
         if (providerRow == null)
         {
             throw new NotSupportedException(Strings.ProviderNotFound((object)connection.ToString()));
         }
         return DbProviderFactories.GetFactory(providerRow);
     })));
 }