using Central.Control.Domain;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
namespace Central.Control.Domain
{
///
/// 数据库连接字符串提取操作
/// 字符串对应应用程序中配置文件
/// 模型对应Domain中的数据库模型Context.cs构造函数
///
public class MyConfig : Entities
{
///
/// 封装EF实体模型,供Dao使用,
///
public System.Data.Entity.DbContext db { get; private set; }
public MyConfig()
{
//实例化EF数据上下文
db = new Entities();//注:Entities()要修改成与EF上下文统一
}
#region 连接数据库配置
///
/// 数据库连接字符串
///
public static string DefaultConnectionString = "";
///
/// 通用数据库链接对象配置
///
public static IDbConnection DefaultConnection
{
get
{
IDbConnection defaultConn = null;
//数据库类型
string action = ConfigurationManager.AppSettings["daoType"];
switch (action)
{
//case "oracle":
// defaultConn = new Oracle.ManagedDataAccess.Client.OracleConnection();
// DefaultConnectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString;
// break;
case "mssql":
defaultConn = new System.Data.SqlClient.SqlConnection();
DefaultConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
break;
default:
break;
}
return defaultConn;
}
}
///
/// 构造数据库连接字符串 注:数据库切换要修改
///
public static string DataBaseConnectionString(string EntityName)
{
IDbConnection con = DefaultConnection;
return EFConnectionStringModle(EntityName, DefaultConnectionString);
}
///
/// 构造EF使用数据库连接字符串
///
/// 数据上下文坏境
/// 数据字符串
static string EFConnectionStringModle(string EntityName, string DBsoure)
{
return string.Concat("metadata=res://*/",
EntityName, ".csdl|res://*/",
EntityName, ".ssdl|res://*/",
EntityName, ".msl;provider=System.Data.SqlClient;provider connection string='",
DBsoure, "'");
}
#endregion
#region SQL拦截器
///
/// 配置EF执行SQL拦截器
///
//public static void EFTracingConfig(log4net.ILog log4net)
//{
// //注册拦截器
// EFTracingProviderConfiguration.RegisterProvider();
// //SQL日志
// log4net.ILog log = null;
// bool isdebug = (ConfigurationManager.AppSettings["isdebug"] == "true");
// if (isdebug)
// {
// log = log4net;
// }
// EFTracingProviderConfiguration.LogToLog4net = log;
//}
#endregion
}
}