在一些特殊的场景,我可能会更换访问的数据库,猜想(玩游戏的时候:选择不同的区登录,选区就是更换数据库,比如你用qq登录王者,可登录1区或者2区,两个区中,你的英雄,皮肤,和段位是不一样的)
上下文的调整
(1) 在上下文中加入一个静态的字段
private static string _datasource = "MESDB";
(2) 使用静态字段来作为配置文件中的连接字符串name
public MESDB(): base("name="+_datasource)
{
}
(3)提供一个静态方法来改变静态字段的值
public static void SetDataName(string datasource)
{
_datasource = datasource;
}
完整代码如下:
public partial class MESDB : DbContext
{
private static string _datasource = "MESDB";
public MESDB() : base("name="+_datasource)
{
}
public static void SetDataName(string datasource)
{
_datasource = datasource;
}
public virtual DbSetMES_ROLE_USER> MES_ROLE_USER { get; set; }
}
在控制器中提供一个接口方法
///
/// 更换数据源
///
///
///
[Route("SetDatasource")]
[HttpPost]
public void ReplaceDatasource(string datasource)
{
MESDB.SetDataName(datasource);
}
配置文件
在connectionStrings中配置多个数据库连接字符串
connectionStrings>
add name="LeanDB" connectionString="metadata=res://*/Models.Lean.csdl|res://*/Models.Lean.ssdl|res://*/Models.Lean.msl;provider=System.Data.SqlClient;provider connection string="data source=SUZ-SQL-004;initial catalog=TT_MES;persist security info=True;user id=mes;password=JRrEdGf_;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
add name="LeanDB_KT" connectionString="metadata=res://*/Models.Lean.csdl|res://*/Models.Lean.ssdl|res://*/Models.Lean.msl;provider=System.Data.SqlClient;provider connection string="data source=SUZ-SQL-tra;initial catalog=whatifmesdb;persist security info=True;user id=mes;password=JRrEdGf_;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
/connectionStrings>
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
1.Insert // 插入一条新的数据,必须全插入 insert into 表名 values (值) // 选择列名插入数据,必须一一对应 insert into 表名 (字段…) values (值…) 2.Update // 可以更条件 upd…