Asp.net 设置动态连接字符串实体框架
我用实体框架开发了Asp.net应用程序,现在我需要在运行时更改实体连接字符串Asp.net 设置动态连接字符串实体框架,asp.net,entity-framework,c#-4.0,Asp.net,Entity Framework,C# 4.0,我用实体框架开发了Asp.net应用程序,现在我需要在运行时更改实体连接字符串 public class DataLayer(){ static DataLayer() { ((EntityConnection)_dbEntity.Connection).StoreConnection.ConnectionString = GetConnectionString(); //GetConnectonString() returns "user id=xxxx;password=xxxx;
public class DataLayer(){
static DataLayer()
{
((EntityConnection)_dbEntity.Connection).StoreConnection.ConnectionString = GetConnectionString();
//GetConnectonString() returns "user id=xxxx;password=xxxx;database=xxxx;server=xxx.xxx.xx.xx"
}
static DBContext _dbEntity = new DBContext();
//other codes
}
我也检查了以下链接。但我还是无法更改它
无法更改现有上下文的连接字符串。若要在运行时控制连接字符串,必须将连接字符串传递给
DbContext
或ObjectContext
构造函数
顺便说一句,正如我在评论中已经提到的,您不能在ASP.NET中使用静态上下文。您根本不应该使用静态上下文。如果继续使用静态上下文,您的应用程序将无法正常工作。最后我得到了答案。我将此dbcontext应用于网格的实体数据源。因此,它在运行时创建上下文,这是固定的。因此,我更改了该dbcontext
protected void EntityDataSource1_ContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e)
{
var dp=new DBContext();
e.Context = dp;
}
ASP.NET应用程序中的静态上下文=。我更改了它,但仍然无法更改。是的,我也尝试过。我犯了以下错误。“关键字不受支持:“用户id”。“这意味着entityconnection不支持连接字符串。为此,我也尝试了上述链接。如果您使用的是EDMX,则必须使用有效的格式。”。您传递的不是实体连接字符串格式。