关于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 } }
在设置了Database.DefaultConnectionFactory属性后,只有当配置文件中找不到指定的连接字符串时,才会使用ConnectionFactory来生成连接
搞半天发现不用这样方法
标签:
EF
, DefaultConnectionFactory
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述