EF连接字符串的DbContext构造函数参数(EF connection string as Db

2019-07-18 20:53发布

我已经看到了一些示例代码创建一个新的DbContext时把一个实体框架连接字符串作为构造函数的参数。 但是,当我添加了一个新的ADO.NET实体数据模型到一个项目(数据库第一),中的DbContext只有一个参数的构造函数。

我错过了一步? 我应该怎么做才能得到这个构造?

的Visual Studio 2012目标的.NET Framework 4.5的实体框架5。

Answer 1:

按照阿瑟·维克斯的建议,我在扩展部分类具有接受连接字符串的构造函数。 在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


Answer 2:

新的数据模型向导添加一个连接字符串,你的配置文件和代码生成的设置来创建一个无参数的构造函数,然后调用与“NAME = foo”的基本构造函数,以便在配置文件中的连接字符串将是一个上下文用过的。

如果你想明确地传递一个连接字符串的构造函数(而不是从配置读它),那么你可以使用一个事实,即上下文是一个局部类添加该构造函数。 你也可以修改T4代码生成模板来改变所产生的构造。



Answer 3:

如果您想更改代码第一次使用此:)

    public class MyCustomDBContext : DbContext
    {
        public MyCustomDBContext()
           : base(GetConnectionStringName())
        {

        }

        public MyCustomDBContext(string connString) : base(connString)
        {

        }


Answer 4:

我解决了这个问题,工作如何用来与EF4,通过改变“代码生成战略”,以“传统的ObjectContext”



文章来源: EF connection string as DbContext constructor argument