エンティティフレームワーク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();
要約
と adition ]の違いを理解することは、エンティティフレームワークを効率的に使用するために不可欠です。
addObjectは新しく作成されたエンティティに使用されますが、添付
は既存のエンティティに使用され、効率的かつ効率的に変更できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3