EF6.1 启用迁移错误

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

PM> Enable-Migrations
Checking if the context targets an existing database...
使用“8”个参数调用“CreateInstanceFrom”时发生异常:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
所在位置 E:\....\src\packages\EntityFramework.6.1.3\tools\EntityFramework.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

posted @ 2015-04-15 19:26  sweetjian  阅读(744)  评论(1编辑  收藏  举报