Entity framework EF连接字符串作为DbContext构造函数参数

Entity framework EF连接字符串作为DbContext构造函数参数,entity-framework,entity-framework-5,Entity Framework,Entity Framework 5,我见过一些在创建新DbContext时将实体框架连接字符串作为构造函数参数的方法。但是,当我在项目中添加新的ADO.NET实体数据模型时(首先是数据库),DbContext只有一个无参数构造函数 我漏了一步吗?我应该怎么做才能得到那个构造函数 Visual Studio 2012以.net framework 4.5 entity framework 5为目标。新建数据模型向导将向配置文件中添加一个连接字符串,并将代码生成设置为使用无参数构造函数创建上下文,然后使用“name=foo”调用基构造

我见过一些在创建新DbContext时将实体框架连接字符串作为构造函数参数的方法。但是,当我在项目中添加新的ADO.NET实体数据模型时(首先是数据库),DbContext只有一个无参数构造函数

我漏了一步吗?我应该怎么做才能得到那个构造函数


Visual Studio 2012以.net framework 4.5 entity framework 5为目标。

新建数据模型向导将向配置文件中添加一个连接字符串,并将代码生成设置为使用无参数构造函数创建上下文,然后使用“name=foo”调用基构造函数以便使用配置文件中的连接字符串


如果要显式地将连接字符串传递给构造函数(而不是从config读取),那么可以使用上下文是分部类的事实来添加该构造函数。您还可以修改T4代码生成模板以更改生成的构造函数。

如果您想先更改为代码,请使用以下命令:)


根据Arthur Vickers的建议,我正在扩展分部类,使其具有接受连接字符串的构造函数。在C#(与黑格的答案非常相似):

或在VB.Net中:

Partial Public Class MyEFEntities
    Public Sub New(ConnectionString As String)
        MyBase.New(ConnectionString)
    End Sub
End Class

我通过将“代码生成策略”更改为“遗留ObjectContext”,修复了这个问题,使其与EF4的使用方式相同


这在EF4中曾经对我有用。当代码工具模板生成时,默认情况下,我认为代码工具模板已被更改为不再允许这样做,对吗?
public partial class MyEFEntities
{
    public MyEFEntities(string connectionstring)
        : base(connectionstring)
    {
    }
}
Partial Public Class MyEFEntities
    Public Sub New(ConnectionString As String)
        MyBase.New(ConnectionString)
    End Sub
End Class