7

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

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

面向 .net 框架 4.5 实体框架 5 的 Visual Studio 2012。

4

4 回答 4

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
于 2013-06-05T01:55:23.897 回答
4

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

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

于 2013-01-28T18:48:31.953 回答
1

如果您想先更改为代码,请使用此 :)

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

        }

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

        }
于 2013-01-28T19:01:59.120 回答
0

我通过将“代码生成策略”更改为“旧版 ObjectContext”来解决此问题,以使其与 EF4 一起使用

在此处输入图像描述

于 2015-03-31T10:29:14.197 回答