ホームページ > バックエンド開発 > C++ > Entity Framework 4: AddObject と Attach: 各メソッドをいつ使用するか?

Entity Framework 4: AddObject と Attach: 各メソッドをいつ使用するか?

Barbara Streisand
リリース: 2025-01-10 14:08:45
オリジナル
636 人が閲覧しました

Entity Framework 4: AddObject vs. Attach: When to Use Each Method?

Entity Framework 4: AddObject メソッドと Attach メソッドの違いと応用

Entity Framework (EF) では、エンティティ管理には AddObjectAttach の 2 つのメソッドが含まれます。 AddObject はシステムに新しいエンティティを挿入するために使用され、Attach はデータベースにすでに存在するエンティティを処理するために使用されます。

AddObject: 新しいエンティティの作成に使用されます

タイトルにあるように、AddObject は新しいエンティティを作成するために使用されます。このメソッドは、生成された EntityKey を割り当て、EntityState を added に設定します。 SaveChanges が呼び出されると、EF はこのエンティティをデータベースに挿入する必要があることを理解します。

添付: 既存のエンティティを変更するために使用されます

対照的に、Attach はデータベースにすでに存在するエンティティを変更するために使用されます。 Attach を使用する場合、EntityState は added に設定されません。 Unchanged 状態のままであり、エンティティがコンテキストにアタッチされてから変更が行われていないことを示します。これにより、EF は SaveChanges を呼び出すときに EntityKey の値を使用してエンティティを識別し、必要に応じて更新または削除できるようになります。

Attach メソッドの適用シナリオ

Attach メソッドの便利なシナリオは、データベースから明示的に取得せずに既存のエンティティを更新することです。たとえば、コンテキスト内に既に存在する Person オブジェクト existingPerson がある場合、そのプロパティを更新してコンテキストにアタッチできます:

<code>var ctx = new MyEntities();
var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs");
existingPerson.Name = "Joe Briggs";
ctx.Persons.Attach(existingPerson);
ctx.SaveChanges();</code>
ログイン後にコピー

Attach を使用すると、エンティティの現在の状態を取得するために追加のクエリを実行する必要がなくなります。

概要

Entity Framework を効果的に使用するには、AddObjectAttach の違いを理解することが重要です。 AddObject は新しく作成されたエンティティに使用され、Attach は既存のエンティティに使用され、それらを効果的かつ効率的に変更できます。

以上がEntity Framework 4: AddObject と Attach: 各メソッドをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート