Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why there are both EntityFramework and System.Data.Entity assemblies in my project?

I just opened VS 2012 and created a class library project. After that I added a new ADO.NET Entity Data Model item to my solution.

I noticed there are both an assembly called EntityFramework 5.0 and another one called System.Data.Entity 4.0. Shouldn't it be just one?

As a bonus problem, when I click the file the designer crashes:

Error   2   Error 6039: warning CS1701: Assuming assembly reference 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' matches 'System.Data.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', you may need to supply runtime policy
c:\Users\andre_pena\AppData\Local\Temp\5srvr0ge.0.cs(465,29) : error CS1061: 'System.Data.Metadata.Edm.EdmFunction' does not contain a definition for 'IsComposableAttribute' and no extension method 'IsComposableAttribute' accepting a first argument of type 'System.Data.Metadata.Edm.EdmFunction' could be found (are you missing a using directive or an assembly reference?)    c:\users\andre_pena\documents\visual studio 2012\Projects\ClassLibrary2\ClassLibrary2\Model1.edmx   1   1   ClassLibrary2

Is it everything ok with my system? Is the existence of both files normal? Why am I getting this error?

like image 303
André Pena Avatar asked Oct 25 '25 06:10

André Pena


2 Answers

You should have both assemblies:

EntityFramework.dll (has DbContext API, Code First)

System.Data.Entity.dll (has ObjectContext and DbContext APIs, new features)

The need for two assemblies are to allow the Entity Framework team to release updates without waiting for the next official release of the .NET Framework.

EdmFunction.IsComposableAttribute is supported in .NET 4.5 so check the version of your System.Data.Entity.dll

enter image description here

And check the detailed answer here: https://stackoverflow.com/a/9694963/1241400

Tip:

If you want to use lambda with Include() add a using directive for System.Data.Entity .

like image 53
Matija Grcic Avatar answered Oct 26 '25 18:10

Matija Grcic


Regarding:

Error   2   Error 6039: warning CS1701: Assuming assembly reference 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' matches 'System.Data.Entity, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', you may need to supply runtime policy

Uninstall Entity Framework June 2011 CTP. I blogged about this some time ago: http://blog.3d-logic.com/2012/04/11/entity-framework-zombie-a-k-a-microsoft-entity-framework-june-2011-ctp/ or it will haunt you to the end of your days (or until you pave your machine).

like image 36
Pawel Avatar answered Oct 26 '25 19:10

Pawel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!