我已经看到了一些示例代码创建一个新的DbContext时把一个实体框架连接字符串作为构造函数的参数。 但是,当我添加了一个新的ADO.NET实体数据模型到一个项目(数据库第一),中的DbContext只有一个参数的构造函数。
我错过了一步? 我应该怎么做才能得到这个构造?
的Visual Studio 2012目标的.NET Framework 4.5的实体框架5。
我已经看到了一些示例代码创建一个新的DbContext时把一个实体框架连接字符串作为构造函数的参数。 但是,当我添加了一个新的ADO.NET实体数据模型到一个项目(数据库第一),中的DbContext只有一个参数的构造函数。
我错过了一步? 我应该怎么做才能得到这个构造?
的Visual Studio 2012目标的.NET Framework 4.5的实体框架5。
按照阿瑟·维克斯的建议,我在扩展部分类具有接受连接字符串的构造函数。 在C#(非常类似于赫格隆的答案):
public partial class MyEFEntities
{
public MyEFEntities(string connectionstring)
: base(connectionstring)
{
}
}
或在VB.Net:
Partial Public Class MyEFEntities
Public Sub New(ConnectionString As String)
MyBase.New(ConnectionString)
End Sub
End Class
新的数据模型向导添加一个连接字符串,你的配置文件和代码生成的设置来创建一个无参数的构造函数,然后调用与“NAME = foo”的基本构造函数,以便在配置文件中的连接字符串将是一个上下文用过的。
如果你想明确地传递一个连接字符串的构造函数(而不是从配置读它),那么你可以使用一个事实,即上下文是一个局部类添加该构造函数。 你也可以修改T4代码生成模板来改变所产生的构造。
如果您想更改代码第一次使用此:)
public class MyCustomDBContext : DbContext
{
public MyCustomDBContext()
: base(GetConnectionStringName())
{
}
public MyCustomDBContext(string connString) : base(connString)
{
}
我解决了这个问题,工作如何用来与EF4,通过改变“代码生成战略”,以“传统的ObjectContext”