Mar*_*nez 1 c# mysql entity-framework
我使用 MySQL EF 6(MySQL.Data.Entity 包)连接到 MySQL DB。如果我使用构造函数 connectionStringName ,一切都可以:base("MyContext")。但如果我直接使用connectionString,它不起作用:base("server=localhost;port=3306;database=wordpress;uid=root")。应用程序引发错误System.ArgumentException: Keyword not supported: 'port'.
我的项目需要直接使用连接字符串。有谁知道如何修理它?谢谢
[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class MyContext : DbContext
{
static MyContext()
{
Database.SetInitializer<MyContext>(null);
}
public MyContext()
//:base("server=localhost;port=3306;database=wordpress;uid=root;password=") not work
:base("MyContext") // it worked if using connectionStringName
{
}
}
Run Code Online (Sandbox Code Playgroud)
目前您正在使用DbContext构造函数,它接受来自 web.config 的连接字符串名称或任何直接分配的连接字符串:
public DbContext(
string nameOrConnectionString
)
Run Code Online (Sandbox Code Playgroud)
后一个参数字符串有一个主要问题,它没有提供任何方法来包含正在使用的数据库提供程序名称(您不能providerName在那里提供值,即MySql.Data.MySqlClient),因此 EF 自动选择由 web.config 定义的默认提供程序,defaultConnectionFactory如下所示:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
由于默认数据库提供程序仍设置为 SQL Server,因此它不接受port连接字符串作为其关键字,因此抛出ArgumentException.
要解决此问题,只需将默认连接工厂更改为MySql.Data.Entity.MySqlConnectionFactory,以便 MySQL 现在被设置为传递到的所有连接字符串的默认提供程序DbContext(假设您使用的是 EF 6):
<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
注意:如果您提供存储在 web.config 中的连接字符串的名称,它将起作用,因为connectionString元素具有providerName将传递给 EF 的属性DbContext:
<add name="MyContext" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;port=3306;database=wordpress;uid=XXXXX;pwd=XXXXX" />
Run Code Online (Sandbox Code Playgroud)
类似问题:
Entity Framework 6 的动态 MySQL 数据库连接
MySQL 的实体框架 defaultConnectionFactory
| 归档时间: |
|
| 查看次数: |
4316 次 |
| 最近记录: |