MyConfig.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using Central.Control.Domain;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. namespace Central.Control.Domain
  9. {
  10. /// <summary>
  11. /// 数据库连接字符串提取操作
  12. /// 字符串对应应用程序中配置文件
  13. /// 模型对应Domain中的数据库模型Context.cs构造函数
  14. /// </summary>
  15. public class MyConfig : Entities
  16. {
  17. /// <summary>
  18. /// 封装EF实体模型,供Dao使用,
  19. /// </summary>
  20. public System.Data.Entity.DbContext db { get; private set; }
  21. public MyConfig()
  22. {
  23. //实例化EF数据上下文
  24. db = new Entities();//注:Entities()要修改成与EF上下文统一
  25. }
  26. #region 连接数据库配置
  27. /// <summary>
  28. /// 数据库连接字符串
  29. /// </summary>
  30. public static string DefaultConnectionString = "";
  31. /// <summary>
  32. /// 通用数据库链接对象配置
  33. /// </summary>
  34. public static IDbConnection DefaultConnection
  35. {
  36. get
  37. {
  38. IDbConnection defaultConn = null;
  39. //数据库类型
  40. string action = ConfigurationManager.AppSettings["daoType"];
  41. switch (action)
  42. {
  43. //case "oracle":
  44. // defaultConn = new Oracle.ManagedDataAccess.Client.OracleConnection();
  45. // DefaultConnectionString = ConfigurationManager.ConnectionStrings["OracleConnectionString"].ConnectionString;
  46. // break;
  47. case "mssql":
  48. defaultConn = new System.Data.SqlClient.SqlConnection();
  49. DefaultConnectionString = ConfigurationManager.ConnectionStrings["SqlConnectionString"].ConnectionString;
  50. break;
  51. default:
  52. break;
  53. }
  54. return defaultConn;
  55. }
  56. }
  57. /// <summary>
  58. /// 构造数据库连接字符串 注:数据库切换要修改
  59. /// </summary>
  60. public static string DataBaseConnectionString(string EntityName)
  61. {
  62. IDbConnection con = DefaultConnection;
  63. return EFConnectionStringModle(EntityName, DefaultConnectionString);
  64. }
  65. /// <summary>
  66. /// 构造EF使用数据库连接字符串
  67. /// </summary>
  68. /// <param name="EntityName">数据上下文坏境</param>
  69. /// <param name="DBsoure">数据字符串</param>
  70. static string EFConnectionStringModle(string EntityName, string DBsoure)
  71. {
  72. return string.Concat("metadata=res://*/",
  73. EntityName, ".csdl|res://*/",
  74. EntityName, ".ssdl|res://*/",
  75. EntityName, ".msl;provider=System.Data.SqlClient;provider connection string='",
  76. DBsoure, "'");
  77. }
  78. #endregion
  79. #region SQL拦截器
  80. /// <summary>
  81. /// 配置EF执行SQL拦截器
  82. /// </summary>
  83. //public static void EFTracingConfig(log4net.ILog log4net)
  84. //{
  85. // //注册拦截器
  86. // EFTracingProviderConfiguration.RegisterProvider();
  87. // //SQL日志
  88. // log4net.ILog log = null;
  89. // bool isdebug = (ConfigurationManager.AppSettings["isdebug"] == "true");
  90. // if (isdebug)
  91. // {
  92. // log = log4net;
  93. // }
  94. // EFTracingProviderConfiguration.LogToLog4net = log;
  95. //}
  96. #endregion
  97. }
  98. }