Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 设置动态连接字符串实体框架_Asp.net_Entity Framework_C# 4.0 - Fatal编程技术网

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;

我用实体框架开发了Asp.net应用程序,现在我需要在运行时更改实体连接字符串

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,则必须使用有效的格式。”。您传递的不是实体连接字符串格式。