2012-11-09 75 views
2

我剛剛打開VS 2012並創建了一個類庫項目。之後,我添加了一個新的ADO.NET Entity Data Model項目到我的解決方案。爲什麼我的項目中既有EntityFramework又有System.Data.Entity程序集?

我注意到有一個名爲EntityFramework 5.0的程序集和另一個名爲System.Data.Entity 4.0的程序集。它不應該只是一個嗎?

作爲獎勵的問題,當我點擊該文件的設計師崩潰:

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 

難道一切就OK了與我的系統?這兩個文件的存在是否正常?爲什麼我得到這個錯誤?

回答

6

你應該有兩個組件:

EntityFramework.dll(具有的DbContext API,代碼第一次)

System.Data.Entity.dll(有ObjectContext的和的DbContext的API,新功能)

需要兩個程序集允許Entity Framework團隊發佈更新,而不必等待.NET Framework的下一個正式版本。

EdmFunction.IsComposableAttribute中支持.NET 4.5,以便檢查 System.Data.Entity.dll

enter image description here

的版本並查看詳細的答案在這裏:https://stackoverflow.com/a/9694963/1241400

提示:

如果你想使用lambda與Include()添加使用指令爲System.Data.Entity

5

關於:

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 

卸載實體框架2011年6月CTP。我前段時間在博客中提到:http://blog.3d-logic.com/2012/04/11/entity-framework-zombie-a-k-a-microsoft-entity-framework-june-2011-ctp/或者它會讓你困擾到你的日子結束時(或者直到你鋪平了你的機器)。

+0

就是這樣!謝謝! –

+0

@AndréPena如果這是解決您的問題,您應該將其標記爲解決方案,而不是其他帖子。 – mikesigs

相關問題