EntityCollection<TEntity>.Add(TEntity) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクションにオブジェクトを追加します。
public:
virtual void Add(TEntity entity);
public void Add (TEntity entity);
override this.Add : 'Entity -> unit
Public Sub Add (entity As TEntity)
パラメーター
- entity
- TEntity
コレクションに追加するオブジェクト。
entity
は IEntityWithRelationships を実装する必要があります。
実装
例外
entity
が null
です。
例
この例には、Adventure Works Sales Model が使用されています。 この例のコードを実行するには、あらかじめプロジェクトに AdventureWorks Sales Model を追加し、Entity Framework を使用するようにプロジェクトを構成しておく必要があります。 これを行うには、「 方法: Entity Framework プロジェクトを手動で構成する 」および 「方法: モデル ファイルとマッピング ファイルを手動で定義する」の手順を完了します。
この例では、2 つの新しい SalesOrderHeader
エンティティを作成し、それらを Contact
エンティティに追加します。次に、オブジェクトを 1 つ削除し、Add メソッドを使用して、削除したオブジェクトを再びコレクションに追加します。
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
Contact contact = new Contact();
// Create a new SalesOrderHeader.
SalesOrderHeader newSalesOrder1 = new SalesOrderHeader();
// Add SalesOrderHeader to the Contact.
contact.SalesOrderHeaders.Add(newSalesOrder1);
// Create another SalesOrderHeader.
SalesOrderHeader newSalesOrder2 = new SalesOrderHeader();
// Add SalesOrderHeader to the Contact.
contact.SalesOrderHeaders.Add(newSalesOrder2);
// Get all related ends
IEnumerable<IRelatedEnd> relEnds =
((IEntityWithRelationships)contact)
.RelationshipManager.GetAllRelatedEnds();
foreach (IRelatedEnd relEnd in relEnds)
{
// Get Entity Collection from related end
EntityCollection<SalesOrderHeader> entityCollection =
(EntityCollection<SalesOrderHeader>)relEnd;
Console.WriteLine("EntityCollection count: {0}",
entityCollection.Count);
// Remove the first entity object.
entityCollection.Remove(newSalesOrder1);
bool contains = entityCollection.Contains(newSalesOrder1);
// Write the number of items after one entity has been removed
Console.WriteLine("EntityCollection count after one entity has been removed: {0}",
entityCollection.Count);
if (contains == false)
Console.WriteLine("The removed entity is not in in the collection any more.");
//Use IRelatedEnd to add the entity back.
relEnd.Add(newSalesOrder1);
Console.WriteLine("EntityCollection count after an entity has been added again: {0}",
entityCollection.Count);
}
}
注釈
Add メソッドは、EntityCollection<TEntity> にオブジェクトを追加して、2 つのオブジェクト間のリレーションシップを作成します。 ソース オブジェクトが ObjectContext インスタンスにアタッチされている場合、Add メソッドは ObjectContext にもオブジェクトを追加します。 この操作は、SaveChanges が呼び出されるとデータ ソースの挿入操作に変換されます。 詳細については、「 オブジェクトの作成、追加、変更、および削除」を参照してください。
Add メソッドは、同じオブジェクト インスタンスで複数回呼び出すことができます。
適用対象
.NET