EF6.1 启用迁移错误

今天在使用EF6 Code First时,出现如下错误,折腾了老半天。分享一下,帮后面的兄弟少走弯路。

PM> Enable-Migrations
Checking if the context targets an existing database...
使用“8”个参数调用“CreateInstanceFrom”时发生异常:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
所在位置 E:....srcpackagesEntityFramework.6.1.3	oolsEntityFramework.psm1:809 字符: 31
+     $domain.CreateInstanceFrom <<<< (
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodTargetInvocation

解决方案

  1. 首先检查数据库连接字符串,确保配置无误

  2. 尝试修改数据库连接,发现将数据库连接改为

<add name ="MyDb" connectionString="Server=.;Database=MyDb;Integrated Security=True;" providerName="System.Data.SqlClient"/>

可以正常运行! 如果不能改成这种连接字符串,继续往下

  1. 如果是64位系统,将编译目标平台设置为AnyCPU,“清理”项目生成的文件

  2. 以管理员身份运行cmd.exe,执行netsh winsock reset后重启操作系统

参考:
VS2010 64位系统 连接数据库时报“连接数据库 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”的错误 解决方法
http://blog.csdn.net/songling418/article/details/17107169
AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
http://blog.csdn.net/u010906068/article/details/40583777

原文地址:https://www.cnblogs.com/djian/p/4429809.html