gpt4 book ai didi

c# - Mysql自定义连接字符串

转载 作者:行者123 更新时间:2023-11-29 13:02:59 25 4
gpt4 key购买 nike

我安装了 mysql 连接器的 Entity Framework 5(mysql for vs 1.1.3 和 mysql 连接器 6.8.3),并且在我的 app.config 中有一个连接字符串:

<add name="applicantDBEntities" connectionString="metadata=res://*/Models.applicantsDBModel.csdl|res://*/Models.applicantsDBModel.ssdl|res://*/Models.applicantsDBModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;database=applicantsdb&quot;" providerName="System.Data.EntityClient" />

如果我在app.config中使用连接字符串,一切正常,但我希望用户能够选择他的服务器、用户名、密码和数据库。我如何尝试实现它:

public partial class applicantDBEntities : DbContext
{
public applicantDBEntities()
: base("name=applicantDBEntities")
{
}

public applicantDBEntities(string connectionString) : base (connectionString)
{

}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}

public DbSet<applicant> applicants { get; set; }
public DbSet<file> files { get; set; }
}

以及初始化本身:

CONNECTION_PATTERN = "server={0};database={1};User Id={2};password={3}";
this.dbContext = new applicantDBEntities(String.Format(CONNECTION_PATTERN,
Settings.GetInstance().Server, Settings.GetInstance().Database,
Settings.GetInstance().User, Settings.GetInstance().Password));

但无论我作为参数传递什么(甚至是错误的参数),我总是会进入 OnModelCreating 方法。

正确的做法是什么?

编辑:正如@Andrew提到的,我的连接字符串是错误的。这就是我现在的做法:

string connectionString = new System.Data.EntityClient.EntityConnectionStringBuilder
{
Metadata = "res://*",
Provider = "MySql.Data.MySqlClient",
ProviderConnectionString = new System.Data.SqlClient.SqlConnectionStringBuilder
{
InitialCatalog = Settings.GetInstance().Database,
DataSource = Settings.GetInstance().Server,
IntegratedSecurity = false,
UserID = Settings.GetInstance().User,
Password = Settings.GetInstance().Password
}.ConnectionString
}.ConnectionString;
this.dbContext = new applicantDBEntities(connectionString);

最佳答案

您的连接字符串格式无效。它应该类似于这样:

"metadata=res://*/Northwind.csdl|  
res://*/Northwind.ssdl|
res://*/Northwind.msl;
provider=System.Data.SqlClient;
provider connection string=
&quot;Data Source=.\sqlexpress;
Initial Catalog=Northwind;
Integrated Security=True;
MultipleActiveResultSets=True&quot;"

并且可能基于EntityConnectionStringBuilder

http://msdn.microsoft.com/en-us/data/jj592674.aspx这里描述了不同场景和框架版本应如何连接数据库

关于c# - Mysql自定义连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23084373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com