0

我正在尝试动态更改实体框架(v4.4)上下文的连接字符串,我收到此错误:

System.AccessViolationException 未处理

消息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

导致错误的代码如下所示(我更改了名称)。

private Project1.Data.Context _db;

public ConstructorMethod(string connectionString ="")
{
    _db = new Project1.Data.Context();
    _db.Database.Connection.ConnectionString = connectionString;
}

这是一个 DAO 类,用于保存数据访问方法,在构造函数上我想传递连接字符串,但由于某种原因,我无法让它工作。是否有其他方法可以通过构造函数传递连接字符串?

该站点上有关此错误的所有帖子似乎都与 EF 无关。

编辑 在尝试使用最少代码的单独项目时。我收到以下错误:

不支持关键字:“元数据”

这使我找到了我在下面发布的解决方案。我仍然想知道为什么会这样,因为它似乎适用于 MVC 4 应用程序。

4

1 回答 1

1

添加一个允许在生成的上下文类文件中传递连接字符串的构造函数解决了我的问题

public SomeContext(string connectionStringOrName)
        : base (connectionStringOrName)
    {
    }

我仍然想知道为什么会发生错误,因为它在使用相同版本的 Entity Framework 的其他项目上确实可以正常工作。

于 2013-02-22T08:54:16.967 回答