【问题标题】:Attempted to read or write protected memory in Entity Framework尝试在实体框架中读取或写入受保护的内存
【发布时间】:2013-02-07 17:36:30
【问题描述】:

我正在尝试动态更改实体框架 (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 应用程序中工作。

【问题讨论】:

    标签: c# .net entity-framework exception-handling


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多