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中Unicode转义序列
    css相对定位和绝对定位
    C#默认以管理员身份运行程序
    asp.net判断是否代理
    JS上传图片选择后立即预览
    asp.net判断是刷新还是提交
    查询QQ好友的IP地址(二)
    查询QQ好友的IP地址(一)
    Hadoop综合大作业+补交平时作业
    熟悉常用的Hbase操作
  • 原文地址:https://www.cnblogs.com/wdfrog/p/3112600.html
Copyright © 2011-2022 走看看