实体框架 – EF6 DBContext动态连接字符串
发布时间:2020-12-16 00:33:45 所属栏目:asp.Net 来源:网络整理
导读:public partial class ProcessContext : DbContext{ static ProcessContext() { Database.SetInitializerProcessContext(null); } public ProcessContext() : base("Name=ProcessCS") //Comes from Config File { } --DBSets protected override void OnMode
public partial class ProcessContext : DbContext { static ProcessContext() { Database.SetInitializer<ProcessContext>(null); } public ProcessContext() : base("Name=ProcessCS") //Comes from Config File { } --DBSets protected override void OnModelCreating(DbModelBuilder modelBuilder) { --Code } } 这是一个多用户数据库,我们有3个不同的数据库。集中DB位于公共位置,不会更改。这是DB存储的其他细节。我需要创建连接字符串@运行时,其细节将来自此集中式数据库。有人可以让我知道怎么去吗? 我尝试使用以下代码,但它不工作。这个方法将在这里调用 public ProcessContext() : base(nameOrConnectionString: ConnectionString()) { } private static string ConnectionString() { SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder(); sqlBuilder.DataSource = "XXX"; sqlBuilder.InitialCatalog = "YYY"; sqlBuilder.PersistSecurityInfo = true; sqlBuilder.IntegratedSecurity = true; sqlBuilder.MultipleActiveResultSets = true; EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); entityBuilder.ProviderConnectionString = sqlBuilder.ToString(); entityBuilder.Metadata = "res://*/"; entityBuilder.Provider = "System.Data.SqlClient"; return entityBuilder.ToString(); } 解决方法
对于SQL Server连接,覆盖实体容器类:(在EF6中工作,SQL Server 2012 express,VS2013)
public partial class PxxxxEntities { private PxxxxEntities(string connectionString) : base(connectionString) { } public static PxxxxEntities ConnectToSqlServer(string host,string catalog,string user,string pass,bool winAuth) { SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder { DataSource = host,InitialCatalog = catalog,PersistSecurityInfo = true,IntegratedSecurity = winAuth,MultipleActiveResultSets = true,UserID = user,Password = pass,}; // assumes a connectionString name in .config of MyDbEntities var entityConnectionStringBuilder = new EntityConnectionStringBuilder { Provider = "System.Data.SqlClient",ProviderConnectionString = sqlBuilder.ConnectionString,Metadata = "res://*/DbModel.csdl|res://*/DbModel.ssdl|res://*/DbModel.msl",}; return new PxxxxEntities(entityConnectionStringBuilder.ConnectionString); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 便携式区域的缺点
- asp.net – ASP.NET中的“关键字不支持:”错误
- asp.net-mvc – ASP.NET MVC讨论板
- asp.net – 当用户有多个角色时,位置授权如何工作?
- asp.net – 使用Elmah为WCF Webservices记录用户名
- asp.net-mvc-3 – RavenDb,无法访问文件,文件被锁定或正在使
- asp.net-mvc – Asp.net MVC5,如何加载.hbs文件
- 定期刷新局部视图(ASP.Net MVC)
- ASP。net下ispostback的用法
- 在asp.net web api中不会触发Application_Error
推荐文章
站长推荐
热点阅读