「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > エンティティフレームワーク4:AddObject vs. Attach:各メソッドを使用するのはいつですか?

エンティティフレームワーク4:AddObject vs. Attach:各メソッドを使用するのはいつですか?

2025-02-06に投稿しました
ブラウズ:835

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

エンティティフレームワーク4:addobjectと添付の方法

の違いとアプリケーション

エンティティフレームワーク(EF)では、エンティティ管理には2つの方法が含まれます。 addObject はシステムに新しいエンティティを挿入するために使用され、添付は、データベースに既に存在するエンティティを処理するために使用されます。 addobject:新しいエンティティを作成するために使用されます

]

タイトルに記載されているように、 addobject は新しいエンティティを作成するために使用されます。このメソッドは、生成されたEntityKeyを割り当て、EntityStateを追加します。

savechanges

が呼ばれる場合、EFはこのエンティティをデータベースに挿入する必要があることを理解しています。 添付:既存のエンティティを変更するために使用されます

]

対照的に、添付は、データベースに既に存在するエンティティを変更するために使用されます。

を使用する場合、

を添付すると、EntityStateは追加されるように設定されていません。それは変わらず、エンティティがコンテキストに添付されているため、変更が発生していないことを示しています。これにより、[EFは SaveChanges を呼び出してエンティティを識別し、必要に応じて更新または削除するときにEntityKey値を使用できます。 添付メソッドのアプリケーションシナリオ

]

添付のメソッドの実用的なシナリオは、データベースから明示的に取得せずに既存のエンティティを更新することです。たとえば、コンテキストに既に存在する既存の人物

がある場合、そのプロパティを更新してコンテキストに追加できます。

var ctx = new MyEntities(); var既存の人= ctx.persons.singleordefault(p => p.name == "joe bloggs"); 既存のPerson.name = "Joe Briggs"; ctx.persons.attach(既存の人); ctx.savechanges();

添付
var ctx = new MyEntities();
var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs");
existingPerson.Name = "Joe Briggs";
ctx.Persons.Attach(existingPerson);
ctx.SaveChanges();
要約

addobject

adition ]の違いを理解することは、エンティティフレームワークを効率的に使用するために不可欠です。

addObject

は新しく作成されたエンティティに使用されますが、添付は既存のエンティティに使用され、効率的かつ効率的に変更できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3