14

Windows XP で EF を使用するアプリケーションを実行することに関する私の質問に対する Slauma の回答に応えて、 Entity Framework 5.0 とターゲット フレームワーク .NET 4.0 (Entity Framework 4.4 とも呼ばれます) を使用するようにアプリケーションを Entity Framework 5.0 から変換しています。

ただし、次のエラーが発生します。

System.Data.Entity.DbSet<MyEntity> does not contain a definition for AddOrUpdate 
and no extension method of a type System.Data.Entity.DbSet<MyEntity> accepting a 
first argument of type System.Data.Entity.DbSet<MyEntity> could be found.
(Are you missing a using directive or assembly reference )

このエラー メッセージの断片を検索してみましたが、うまくいきません。奇妙なことに、この Microsoft リンクでは 4.4 についても言及されて いません。EF4.4 の SO タグすらありません。

4

2 に答える 2

33

追加する必要があります...

using System.Data.Entity.Migrations;

...コードファイルに追加してAddOrUpdate利用できるようにします。名前空間のクラスに実装されているの拡張メソッドです。IDbSet<T>IDbSetExtensionsSystem.Data.Entity.Migrations

于 2013-08-01T16:17:41.300 に答える
4

MVC5 Web アプリケーションの移行を有効にすると、構成の Seed メソッドに次のコメントが表示されます。

//  You can use the DbSet<T>.AddOrUpdate() helper extension method 

これに対する私の最初の刺し傷は、ユーザーに対するものでしたDbSet<MyEntity>.AddOrUpdate()。これにより、この質問で提起されたものと同じエラー メッセージが表示されます (当然のことです)。修正は、コメントの残りを読み取り、シード関数に渡されたコンテキスト パラメーターを使用することです。

    context.MyEntity.AddOrUpdate();
于 2015-07-21T04:04:23.440 に答える