我正在尝试动态更改Entity framework(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应用程序。
答案 0 :(得分:1)
添加允许在生成的上下文类文件中传递连接字符串的构造函数解决了我的问题
public SomeContext(string connectionStringOrName)
: base (connectionStringOrName)
{
}
我仍然想知道错误发生的原因,因为它确实如上所述在使用相同版本的Entity Framework的其他项目中工作。