Entity Framework code first migrations throwing error

12

Here is what I did before I got this error:

  1. Installed EF (the pre release version, 6 maybe, I dunno)
  2. decided I did not want, so uninstalled that and reinstalled the stable version (5)
  3. Truncated my database via SSMS

here is the error:

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or      
assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicK
eyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest   
definition does not match the assembly reference. (Exception from H
RESULT: 0x80131040)"
At C:\Projects\BCATracker.Web\packages\EntityFramework.6.0.0- 
alpha2\tools\EntityFramework.psm1:425 char:31
+     $domain.CreateInstanceFrom <<<< (
+ CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodTargetInvocation

Here is what I have tried:

  • Delete everthing from the bin directory, rebuild.
  • remove EF from nuget, delete the file in the packages directory, readd ef in nuget.

Looking at the proj file I see this:

<Reference Include="EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll</HintPath>
</Reference>

What could be a possible root cause?

entity-framework
c#-4.0
ef-code-first
database-migration
asked on Stack Overflow Dec 12, 2012 by ledgeJumper • edited Jul 15, 2018 by halfer

9 Answers

17

I figured out the problem. EntityFramework.dll needed to be in the GAC for Visual Studio to use it from the package manager.

  1. Start Visual Studio Command Prompt (ensure you started Visual Studio as Administrator)
  2. Go to your packages directory and find the EntityFramework package directory.
  3. Go to lib\net45 (if targeting 4.5)
  4. type: gacutil /i EntityFramework.dll

Note: It may be wise to restart the computer entirely at this point.

I'm not sure why Visual Studio stopped seeing the DLL, but this got me past this problem.

answered on Stack Overflow Jan 30, 2015 by allen1 • edited Apr 29, 2016 by allen1
2

Yes above comment is right that worked for me.

EntityFramework.dll needed to be in the GAC for Visual Studio to use it from the package manager.

1. Start Visual Studio Command Prompt (ensure you started Visual Studio as Administrator) 
2. Go to your packages directory and find the    EntityFramework package directory. 
3. Go to lib\net45 (if targeting 4.5)    
4. type: gacutil /i EntityFramework.dll 

Note: It may be wise to restart the computer entirely at this point.

C:\Windows\system32>cd..

C:\Windows>cd..

C:\>cd \packages\EntityFramework.5.0.0\lib\net45

C:..\packages\EntityFramework.5.0.0\lib\net45>
gacutil /i EntityFramework.dll

This will definitively works.

answered on Stack Overflow Aug 19, 2016 by tika • edited Aug 19, 2016 by tika
1

I believe I could figure out a solution. I had several projects in my solution.

enter image description here

My database logic was in SqlDataAccess. The assembly was reference in WebUI.

I started off at the DomainLogic. Define POCOs for repository base classes there.

Then I added SqlDataAccess project.

and tried Enable-Migrations, Add-Migration and Update-Database command. It ran fine. After I added WebUI (an MVC 4 based web application to the project and ran the commands above. I started getting this version error.

I unload the project WebUI and re ran the command. And it ran fine again. So, Even if it's not the best solution you might want to unload other projects leaving the atabase project in the solution and then running these commands. It worked for me. All the best!

answered on Stack Overflow Apr 4, 2014 by Ziaullah Khan
1

I also faced this problem while using using code first migration. just update the entity framework version to Entity Framework Version 6.1.3 to resolve this. using command on Package manager console "Install-Package Entity Framework -version 6.1.3"

answered on Stack Overflow Jul 31, 2015 by rehan yaqoob
1
  1. Open Manage NUGET Packages for solution... window and update EntityFramework
  2. Restart Visual Studio
  3. Run the command in package manager console Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext(This is a sample context)
answered on Stack Overflow Dec 1, 2015 by Hailemichael
1

Install EF 6.1.3 and this will solve the problem.

answered on Stack Overflow Dec 7, 2015 by Farshid
0

Perform the following actions to resolve this issue:

1)Uninstall Entity Framework from the package(Manage NUGET Packages).

2)Restart Visual Studio.

3)Re-install Entity Framework again from package manager.

4)Add reference to the System.Data.Entity.

5)Run the command in package manager console Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext(This is a sample context).

After this you could see the changes reflected in packages.config.

answered on Stack Overflow Dec 17, 2014 by Nishanth Suresh
0

I have Windows 10. The following steps corrected the issue

  1. Open Program and Features and do a search for 'entity'
  2. I noticed an update was installed on 1/23/2016 after the 6.1.3 update on 7/22/2015
  3. Selected the 'Entity Framework 6.1.3' etc.. update
  4. Clicked on the "Repair" button. After the repair completed I restarted Visual Studio and issue no longer surfaced.

Thanks to @Farshid for the initial clue to a resolution.

enter image description here

answered on Stack Overflow Jan 31, 2016 by Geovani Martinez
-1

I was also facing same error and waste a lot of time on this error **This is only due to I updated entity framework but it gave this error so I again install Entity Framework 6.0.0 ** Error solved

enter image description here

answered on Stack Overflow Jan 18, 2018 by Mudassar Iqbal

User contributions licensed under CC BY-SA 3.0