Entity framework 实体框架对象不允许连接字符串作为参数传递

Entity framework 实体框架对象不允许连接字符串作为参数传递,entity-framework,connection-string,Entity Framework,Connection String,我试图初始化实体对象(ADO.NET EF对象),但它不允许我选择要使用的连接字符串。我需要更改连接字符串,以便为用户提供不同的访问级别 实体对象中没有覆盖,只有一个无参数构造函数 如果有人能给我指点,我将不胜感激 如果您使用设计器为您生成.edmx文件,您将获得如下内容: public MyEntities() : base("name=MyEntities", "MyEntities") { this.ContextOptions.LazyLoadingEna

我试图初始化实体对象(ADO.NET EF对象),但它不允许我选择要使用的连接字符串。我需要更改连接字符串,以便为用户提供不同的访问级别

实体对象中没有覆盖,只有一个无参数构造函数


如果有人能给我指点,我将不胜感激

如果您使用设计器为您生成.edmx文件,您将获得如下内容:

    public MyEntities() : base("name=MyEntities", "MyEntities")
    {
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
    }
默认情况下,这将从配置文件中获取连接字符串

在这种情况下,您可以设置连接字符串

    public partial class MyEntities
    {

    partial void OnContextCreated()
    {
       //Dynamically Building a Connection String
       this.Connection.ConnectionString = "myconnectionstring";          
    }
   } 
请记住,这将首先使用基本构造函数从配置中提取连接字符串,然后使用自定义版本进行设置,基本上覆盖连接字符串。当您总是想要一个默认的连接字符串时,这通常是很好的

如果您想要更多的控制,另一个选项是通过构造函数传入连接字符串,如下所示:

    public partial class MyEntities
    {   
     public MyEntities(string connectionString) :           
     base(connectionString,"MyEntities")       
     {

       this.OnContextCreated();       
    }
   }
现在将连接字符串向下传递给基类,这是它将使用的唯一一个。但是,这意味着您每次都需要提供这些信息


希望这有帮助……

我遵循了你的建议。为分部类创建了一个新文件,并添加了以下代码:public分部类Entities{public Entities(string connectionString):base(connectionString){},让它运行起来。