首先在 MVC 数据库中的 运行 时间设置 mysql 连接字符串
Setting mysql connection string at run time in MVC database first
我有一个 MVC 项目(首先是数据库),其中有一个 SQL 连接 string.for 应用此连接 我使用这种方式并且连接正确:
http://www.c-sharpcorner.com/UploadFile/8a67c0/database-first-approach-with-Asp-Net-mvc-step-by-step-part-2/
但是,我的问题是关于在 运行 时间与 MySQL database.In 应用另一个连接事实上,我有几个需要 SQL 连接的表格和几个表格需要MySQL connection.On 另一只手, MySQL 必须在运行 时设置连接。
所以,我有两个重要的问题:
1-如何在 运行 时设置 MySQL 连接字符串(在关联我的模型中)
2-如何在 运行ning 项目中的不同视图中的两个连接之间切换。
有关更多说明,您可以查看我创建 MySQL 连接的模型,如下所示:(这些字段在视图中设置,在发布视图连接后必须连接)
public partial class BPMEngine
{
public int EngID { get; set; }
public string EngName { get; set; }
public string DBServer { get; set; }
public string DBName { get; set; }
public string DBUserName { get; set; }
public string DBPass { get; set; }
public string EngURL { get; set; }
public string AppRootPath { get; set; }
}
在应用程序设置中指定连接字符串,在上下文 class 中传递连接字符串。
我建议您指定 2 个(或尽可能多的)连接字符串并使用多个上下文 classes,每个 "communicating" 与其他数据库。
示例:
在App.config
中:
<connectionStrings>
<add name="conn_str_number_1" .../>
<add name="conn_str_number_2" .../>
</connectionStrings>
上下文 class是:
class MyContext1 : DbContext
{
public MyContext() : base("name=conn_str_number_1")
{
//...
}
//...
}
另一个:
class MyContext2 : DbContext
{
public MyContext() : base("name=conn_str_number_2")
{
//...
}
//...
}
并且在代码中使用两个上下文 classes,因此您可以与两个数据库交互。
要在 运行 时切换连接字符串,您可以使用 contextClass.Database.Connection.ConnectionString
属性。 More info about it here.
在那里,我们还可以读到:DbContext
有一个构造函数重载,它接受连接字符串的名称或连接字符串本身。实现您自己的版本并将其传递给基本构造函数:
public class MyDbContext : DbContext
{
public MyDbContext( string nameOrConnectionString )
: base( nameOrConnectionString )
{
}
}
但是你必须在 运行ning 程序之前指定所有连接字符串:)
我有一个 MVC 项目(首先是数据库),其中有一个 SQL 连接 string.for 应用此连接 我使用这种方式并且连接正确:
http://www.c-sharpcorner.com/UploadFile/8a67c0/database-first-approach-with-Asp-Net-mvc-step-by-step-part-2/
但是,我的问题是关于在 运行 时间与 MySQL database.In 应用另一个连接事实上,我有几个需要 SQL 连接的表格和几个表格需要MySQL connection.On 另一只手, MySQL 必须在运行 时设置连接。
所以,我有两个重要的问题:
1-如何在 运行 时设置 MySQL 连接字符串(在关联我的模型中)
2-如何在 运行ning 项目中的不同视图中的两个连接之间切换。
有关更多说明,您可以查看我创建 MySQL 连接的模型,如下所示:(这些字段在视图中设置,在发布视图连接后必须连接)
public partial class BPMEngine
{
public int EngID { get; set; }
public string EngName { get; set; }
public string DBServer { get; set; }
public string DBName { get; set; }
public string DBUserName { get; set; }
public string DBPass { get; set; }
public string EngURL { get; set; }
public string AppRootPath { get; set; }
}
在应用程序设置中指定连接字符串,在上下文 class 中传递连接字符串。
我建议您指定 2 个(或尽可能多的)连接字符串并使用多个上下文 classes,每个 "communicating" 与其他数据库。
示例:
在App.config
中:
<connectionStrings>
<add name="conn_str_number_1" .../>
<add name="conn_str_number_2" .../>
</connectionStrings>
上下文 class是:
class MyContext1 : DbContext
{
public MyContext() : base("name=conn_str_number_1")
{
//...
}
//...
}
另一个:
class MyContext2 : DbContext
{
public MyContext() : base("name=conn_str_number_2")
{
//...
}
//...
}
并且在代码中使用两个上下文 classes,因此您可以与两个数据库交互。
要在 运行 时切换连接字符串,您可以使用 contextClass.Database.Connection.ConnectionString
属性。 More info about it here.
在那里,我们还可以读到:DbContext
有一个构造函数重载,它接受连接字符串的名称或连接字符串本身。实现您自己的版本并将其传递给基本构造函数:
public class MyDbContext : DbContext
{
public MyDbContext( string nameOrConnectionString )
: base( nameOrConnectionString )
{
}
}
但是你必须在 运行ning 程序之前指定所有连接字符串:)