实体框架 – EF6 DBContext动态连接字符串
发布时间:2020-05-23 17:13:35 所属栏目:asp.Net 来源:互联网
导读:public partial class ProcessContext : DbContext{ static ProcessContext() { Database.SetInitializerProcessContext(null); } public ProcessContext() : base(Name=Proce
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-mvc – ASP.net MVC DropDownList预选项目被忽略
- asp.net-mvc – 带vNext的MVC 6:我们还需要Global.asax吗?
- .net – 在控制器中创建子文件夹
- 我是否需要在asp.net中取消订阅(手动订阅)活动?
- asp.net-mvc – ASP.NET MVC 4邮政编码验证
- 如何确定ASP.NET站点(IIS)上的用户数量?和他们的信息?
- asp.net-web-api – 如何创建角色并将用户添加到ASP.NET MV
- asp.net-mvc – asp.net MVC中RavenDB中的多租户索引
- 在ASP.Net网站项目中混合VB.Net和C#代码?
- asp.net-core-mvc – EntityFramework 7(EF7)迁移 DbContex
推荐文章
站长推荐
- asp.net-mvc – MVC4应用程序“无法加载DLL’lib
- asp.net-mvc-3 – 跨域的SignalR
- asp.net – 在调用“WebSecurity”类的任何其他方
- asp.net – 单独配置文件为web.config的部分
- 使用ASP.NET AJAX Control Toolkit设置焦点
- asp.net-mvc – 如何跳过ActionFilter的操作执行
- 强制ASP.NET应用程序从bin而不是GAC加载程序集
- 休息 – 无法序列化内容类型的响应正文
- asp.net-mvc-3 – ASP.NET MVC 3,RavenDB和Autof
- asp.net-mvc – MultiSelect jqgrid MVC3的OnCli
热点阅读
