C#根据不同的连接字符串去访问不同的Server
2017-12-28 14:29
417 查看
情景:存在两个Server,一个本机Debug的情况下,根据server与本机上存在的特有的文件来执行不同的连接方式的动作。
Database只有一个,存放在新server中,旧server可以访问到新servers 中Database
MVC中的Web.config中连接字符串
<connectionStrings>
<add name="MySQLConContext_New" connectionString="Server= ;Port= ;SqlServerMode=true;Database= ;UserId= ;Password= ;CharSet=utf8" providerName="MySql.Data.MySqlClient" />
<add name="MySQLConContext" connectionString="Server= ;Port= ;SqlServerMode=true;Database= ;UserId= ;Password= ;CharSet=utf8" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
Solution中class中的方法:
using System.Runtime.Remoting.Messaging;
public class ContextFactory
{
public static MyDbContext GetCurrentContext(){
//根据执行的环境不一样,存在的文档
bool SwitchFile = File.Exists(@"C:\PCS\10.41.16.93.txt"); //server1上存在的txt文档
bool SwitchFileNew = File.Exists(@"C:\PCS\10.41.23.172.txt");//server2上存在的txt文档
MyDbContext _DbContext = CallContext.GetData("MyContext") as MyDbContext;//初始为null
if (_DbContext == null)
{
if (SwitchFileNew)
{
_DbContext = new MyDbContext("MySQLConContext_New");//执行时如为true,执行MyDbContext(string)方法
}
else if (SwitchFile)
{
_DbContext = new MyDbContext("MySQLConContext");
}
CallContext.SetData("MyContext", _DbContext);
}
return _DbContext;
} }
using System.Data.Entity;
using System.Configuration;
using System.Data.Entity.ModelConfiguration.Conventions;
public class MyDbContext:DbContext//连接数据库
{
public DbSet<User> Users { get; set; }
public DbSet<Role> UserGroups { get; set; }
//构造函数
public MyDbContext(string conn):base(conn)//根据上一个方法传过来参数匹配Web.config里的字符串去连接不同的server
{
Database.CreateIfNotExists();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//j禁止重新建表
}
}
Database只有一个,存放在新server中,旧server可以访问到新servers 中Database
MVC中的Web.config中连接字符串
<connectionStrings>
<add name="MySQLConContext_New" connectionString="Server= ;Port= ;SqlServerMode=true;Database= ;UserId= ;Password= ;CharSet=utf8" providerName="MySql.Data.MySqlClient" />
<add name="MySQLConContext" connectionString="Server= ;Port= ;SqlServerMode=true;Database= ;UserId= ;Password= ;CharSet=utf8" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
Solution中class中的方法:
using System.Runtime.Remoting.Messaging;
public class ContextFactory
{
public static MyDbContext GetCurrentContext(){
//根据执行的环境不一样,存在的文档
bool SwitchFile = File.Exists(@"C:\PCS\10.41.16.93.txt"); //server1上存在的txt文档
bool SwitchFileNew = File.Exists(@"C:\PCS\10.41.23.172.txt");//server2上存在的txt文档
MyDbContext _DbContext = CallContext.GetData("MyContext") as MyDbContext;//初始为null
if (_DbContext == null)
{
if (SwitchFileNew)
{
_DbContext = new MyDbContext("MySQLConContext_New");//执行时如为true,执行MyDbContext(string)方法
}
else if (SwitchFile)
{
_DbContext = new MyDbContext("MySQLConContext");
}
CallContext.SetData("MyContext", _DbContext);
}
return _DbContext;
} }
using System.Data.Entity;
using System.Configuration;
using System.Data.Entity.ModelConfiguration.Conventions;
public class MyDbContext:DbContext//连接数据库
{
public DbSet<User> Users { get; set; }
public DbSet<Role> UserGroups { get; set; }
//构造函数
public MyDbContext(string conn):base(conn)//根据上一个方法传过来参数匹配Web.config里的字符串去连接不同的server
{
Database.CreateIfNotExists();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//j禁止重新建表
}
}
相关文章推荐
- C# 使用OLEDB读取不同版本Excel数据的连接字符串
- Sql-Server 配置远程连接以及C#连接字符串
- C#读取不同版本excel的连接字符串
- C# 根据ADO.NET数据库连接字符串构建EntityFrame数据库连接字符串
- c# mysql and sqlserver数据库连接字符串
- Java程序访问Oracle数据库集群与非集群的不同连接字符串
- C#基础——数据库连接字符串及数据库访问
- SqlServer T-sql 连接 访问 access 数据库 字符串
- C#自动判断Excel版本使用不同的连接字符串
- C#连接sql server windows 和 sqlserver 身份验证的两种连接字符串
- C#连接sql server windows 和 sqlserver(2000/05/08) 身份验证的两种连接字符串
- C#连接各类数据库字符串集锦
- (转)SQL Server Compact Edition 数据库连接字符串
- C#中配置文件的使用方法(连接字符串的保存)
- join(连个不同的表根据某连接条件左右连接到了一起)
- 使用OLEDB读取不同版本Excel数据的连接字符串设置
- Unity3D 游戏引擎之C#使用Socket与HTTP连接server数据传输包
- C#企业库自定义连接字符串.
- C#应用访问Microsoft SQL Server 2005分析服务