0

データベース モデルが異なる 2 つのプロジェクトがあります (ただし、Entity Framework バージョン 5.0.0 は同じです)。

彼らのクエリは次のようになります。

プロジェクト 1:

if (_db.Entry(customer).State == EntityState.Detached)

プロジェクト 2:

if (customer.EntityState == EntityState.Detached)

これらは違いであり、その他の小さなことでもあります。

各プロジェクトが使用している Entity Framework のバージョン (DLL のバージョンが一致する場合) を確認するにはどうすればよいですか? 「古い」バージョンを「新しい」モデル バージョンに更新することは理にかなっていますか? 利点は何ですか?

4

1 に答える 1

1

プロジェクト 1 は、DbContextこのコンテキスト タイプのみがEntryメソッドを持つため、API を使用します。

ObjectContextプロジェクト 2 は、そこから派生したエンティティを使用し、そこからEntityObject継承Customerする可能性が最も高いEntityStateです。Customerカスタム プロパティがある場合EntityState、単一の行で区別することはできません。F12 を 2 回customer押します。1 回は宣言に移動する変数に対して、次にその変数の型 (おそらくCustomer) に対して 1 回押して、クラス宣言を表示し、それが から派生しているかどうかを確認しEntityObjectます。

プロジェクト 2 の EF5 アセンブリが参照されているという事実は、何の意味もありません。コードで使用されていないか、コードでいくつかのヘルパー メソッド ( のラムダ バージョンなどInclude) しか使用されていない可能性がありますが、 のすべてのコア機能は使用されていないようですDbContext。.NET フレームワーク アセンブリ (System.Data.Entity.dllなど) の EF クラスを参照します。

EF の新しい開発はすべて (アプローチではなく) POCO アプローチに従っているため、プロジェクト 2 のアップグレードを検討する価値がありEntityObjectます。

于 2013-04-15T19:20:46.997 に答える