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

时间:2013-01-28 12:18:39

标签: entity-framework entity-framework-5

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

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

Visual Studio 2012,目标是.net framework 4.5实体框架5.

4 个答案:

答案 0 :(得分:8)

根据Arthur Vickers的建议,我正在扩展部分类以使用一个接受连接字符串的构造函数。在C#中(非常类似于hege的回答):

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

如果你想改为代码,首先使用它:)

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

        }

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

        }

答案 3 :(得分:0)

我修改了这个,通过改变"代码生成策略"来解决它与EF4的习惯。 to" Legacy ObjectContext"

enter image description here