2,修改DbProviderFactories:找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 注意64 在DbProviderFactories节点下添加 <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description
webconfig配置以下节点(注意版本号) <system.data> <DbProviderFactories> <add name="MySQL Data Provider" MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories system.data> 全局配置: 在C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\CONFIG中machine.config(xml文件)中有一个字段是<DbProviderFactories
public DataSet GetDataSet(string strSql) { DbProviderFactory DbProvider = DbProviderFactories.GetFactory { DataSet dataset = new DataSet(); DbProviderFactory DbProvider = DbProviderFactories.GetFactory string strSql) { int iCount = -1; DbProviderFactory DbProvider = DbProviderFactories.GetFactory [] Parameters) { int iCount = -1; DbProviderFactory DbProvider = DbProviderFactories.GetFactory ProcedureName) { int iCount = -1; DbProviderFactory DbProvider = DbProviderFactories.GetFactory
旧版本通过将条目添加到您的计算机.config来配置自身 3、配置System.Data.Sqlite 1)更新machine.config文件,将SQLite提供程序添加到DbProviderFactories 元素: <system.data> <DbProviderFactories> <add name="SQLite Data Provider" invariant="System.Data.SQLite Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> </DbProviderFactories
需要在app.config或者web.config中添加下面的配置项 <system.data> <DbProviderFactories> <add name=" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/> </DbProviderFactories
} public static DbConnection CreateConnection() { DbProviderFactory dbfactory = DbProviderFactories.GetFactory DbConnection CreateConnection(string connectionString) { DbProviderFactory dbfactory = DbProviderFactories.GetFactory region 执行 public DataSet ExecuteDataSet(DbCommand cmd) { DbProviderFactory dbfactory = DbProviderFactories.GetFactory } public DataTable ExecuteDataTable(DbCommand cmd) { DbProviderFactory dbfactory = DbProviderFactories.GetFactory cmd.Connection = t.DbConnection; cmd.Transaction = t.DbTrans; DbProviderFactory dbfactory = DbProviderFactories.GetFactory
也可以修改.net 配置文件 C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config <system.data> <DbProviderFactories Microsoft.Data.SAPClient, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </DbProviderFactories
machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的32/64位版本,要每个都检查过去哦) <DbProviderFactories Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.111.7.20, Culture=neutral, PublicKeyToken=89b483f429c47342"/> </DbProviderFactories > 4.0的machine.config中类似下面这样: <DbProviderFactories> <add name="Oracle Data Provider for .NET" invariant Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </DbProviderFactories
System.Data.SqlServerCe" /> 5: </connectionStrings> 6: <system.data> 7: <DbProviderFactories System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> 11: 12: </DbProviderFactories
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,Microsoft.Practices.EnterpriseLibrary.Data"/> </configSections> <system.data> <DbProviderFactories MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> </DbProviderFactories
PublicKeyToken=c5687fc88969c44d" /> 23 24 </providers> 25 </entityFramework> 26 <system.data> 27 <DbProviderFactories MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.20.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 30 </DbProviderFactories
Culture=neutral, PublicKeyToken=89b483f429c47342" /> </providers> </entityFramework> <system.data> <DbProviderFactories Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> </DbProviderFactories
connectionStrings> ef自动创建数据库和表,在已有数据库中需要创建结构一致的表(这个操作和code first违背) 找不到provider 注意version版本号 <system.data> <DbProviderFactories MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories
DataDirectory|\mydb.db;Pooling=true;FailIfMissing=false" /> </connectionStrings> <system.data> <DbProviderFactories Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> </DbProviderFactories } private static DbConnection CreateDbConnectionCore() { var dbf = DbProviderFactories.GetFactory
new DataSet(); try { DbProviderFactory factory = DbProviderFactories.GetFactory DataSet dataSet = new DataSet(); connection.Open(); DbDataAdapter sqlDA = DbProviderFactories.GetFactory DbConnection connection = GetDbConnection()) { DbParameter dbParameter = DbProviderFactories.GetFactory
EFTracingProvider和EFCachingProvider的配置,必须在配置文件(app.config或者web.config)中指定,否则上面的代码无效,配置文件如下所示: <system.data> <DbProviderFactories EFProviderWrapperToolkit, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b" /> </DbProviderFactories
foreach (string invariantName in wrapperProviderInvariantNames) { DbProviderFactory factory = DbProviderFactories.GetFactory
string ProviderName = "Oracle.DataAccess.Client"; DbProviderFactory factory = DbProviderFactories.GetFactory string ProviderName = "Oracle.DataAccess.Client"; DbProviderFactory factory = DbProviderFactories.GetFactory
=root;Password=123456;Allow Zero Datetime=true;” /> </connectionStrings> <system.data> <DbProviderFactories MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/> </DbProviderFactories
,EF代码还是会报错,因为mysql-connector-net安装不仅装了各种dll类库,还在机器上.net环境的全局machine.config里加过如下配置: <system.data> <DbProviderFactories MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories -- 手动新增system.data配置节点 --> <system.data> <DbProviderFactories> <add name="MySQL Data Provider MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories