Entity framework EF连接字符串作为DbContext构造函数参数
我见过一些在创建新DbContext时将实体框架连接字符串作为构造函数参数的方法。但是,当我在项目中添加新的ADO.NET实体数据模型时(首先是数据库),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”调用基构造
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