zoukankan      html  css  js  c++  java
  • 关于IDbConnectionFactory

    需要EF4.0的DbContext

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    using System.Configuration;
    using System.Data.SqlClient;
    namespace F.Studio.Util.DB
    {
        public  class MyDbContext :DbContext
        {
            static MyDbContext()
            {
                Database.SetInitializer<MyDbContext>(null);
                Database.DefaultConnectionFactory = new MyConnFactory();
            }
            /// <summary>
            /// 配置文件中的连接字符串名称
            /// </summary>
            /// <param name="name"></param>
            public MyDbContext(string nameOrConnStr)
                : base(nameOrConnStr)
            {
                
            }
            public MyDbContext()
                : base()
            {
    
            }
            
    
        }
        internal class MyConnFactory : IDbConnectionFactory
        {
    
            #region IDbConnectionFactory 成员
    
            public System.Data.Common.DbConnection CreateConnection(string nameOrConnectionString)
            {
                Console.WriteLine("连接工厂:" + nameOrConnectionString);
                return new SqlConnection("Data Source=192.168.1.7;Initial Catalog=JL_MFG;Persist Security Info=True;User ID=sa;Password=admin;Pooling=False");
                //传入的是连接字符串
                if (nameOrConnectionString.IndexOf("=") >= 0)
                {
                    return new SqlConnection(nameOrConnectionString);
                }
                //到config文件的connections中找对应链接
                var connStr = ConfigurationManager.ConnectionStrings[nameOrConnectionString].ConnectionString;
                return new SqlConnection(connStr);
            }
    
            #endregion
        }
    }
    View Code

    在设置了Database.DefaultConnectionFactory属性后,只有当配置文件中找不到指定的连接字符串时,才会使用ConnectionFactory来生成连接
    搞半天发现不用这样方法

  • 相关阅读:
    JS事件处理中心的构想
    form的novalidate属性
    AOP思想在JS中的应用
    推行浏览器升级提示,从自己做起
    doT.js模板引擎
    关于JS获取元素宽度的一点儿思考
    类似百度图片,360图片页面的布局插件
    ASCII、Unicode、UTF-8编码关系
    python字符串格式化符号及转移字符含义
    python字符串的方法介绍
  • 原文地址:https://www.cnblogs.com/wdfrog/p/3112600.html
Copyright © 2011-2022 走看看