2

VS 2012を開いて、クラスライブラリプロジェクトを作成しました。その後ADO.NET Entity Data Model、ソリューションに新しいアイテムを追加しました。

EntityFramework5.0というアセンブリとSystem.Data.Entity4.0という別のアセンブリの両方があることに気付きました。たった1つではないですか?

ボーナスの問題として、ファイルをクリックするとデザイナーがクラッシュします。

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

私のシステムはすべて大丈夫ですか?両方のファイルの存在は正常ですか?なぜこのエラーが発生するのですか?

4

2 に答える 2

6

両方のアセンブリが必要です。

EntityFramework.dll (DbContext API、Code First あり)

System.Data.Entity.dll (ObjectContext および DbContext API、新機能を含む)

2 つのアセンブリが必要なのは、Entity Framework チームが .NET Framework の次の公式リリースを待たずに更新プログラムをリリースできるようにするためです。

EdmFunction.IsComposableAttribute.NET 4.5 でサポートされているため、 System.Data.Entity.dllのバージョンを確認してください。

ここに画像の説明を入力

ここで詳細な回答を確認してください: https://stackoverflow.com/a/9694963/1241400

ヒント:

ラムダを使用する場合は、 System.Data.EntityInclude()の using ディレクティブを追加します。

于 2012-11-09T19:11:35.483 に答える
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

Entity Framework June 2011 CTP をアンインストールします。しばらく前にこれについてブログを書きました: http://blog.3d-logic.com/2012/04/11/entity-framework-zombie-aka-microsoft-entity-framework-june-2011-ctp/一日の終わりまで (またはマシンを舗装するまで)。

于 2012-11-09T19:37:51.537 に答える