EntityCollection<TEntity>.Add(TEntity) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá objekt do kolekce.
public:
virtual void Add(TEntity entity);
public void Add (TEntity entity);
override this.Add : 'Entity -> unit
Public Sub Add (entity As TEntity)
Parametry
- entity
- TEntity
Objekt, který se má přidat do kolekce.
entity
musí implementovat IEntityWithRelationships.
Implementuje
Výjimky
entity
je null
.
Příklady
Tento příklad je založen na prodejním modelu Adventure Works. Chcete-li spustit kód v tomto příkladu, musíte již přidat AdventureWorks Sales Model do projektu a nakonfigurovat projekt tak, aby používal Entity Framework. Provedete to tak, že dokončíte postupy v části Postupy: Ruční konfigurace projektu Entity Framework a Postupy: Ruční definování souborů modelu a mapování.
Tento příklad vytvoří dvě nové SalesOrderHeader
entity, přidá je do Contact
entity a po odebrání objektu použije metodu Add k přidání objektu zpět do kolekce.
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)
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);
}
}
Poznámky
Metoda Add přidá objekt do objektu EntityCollection<TEntity> a vytvoří relaci mezi dvěma objekty. Když je zdrojový objekt připojen k ObjectContext instanci, Add metoda také přidá objekt do objektu ObjectContext. Tato operace se při SaveChanges zavolání přeloží na operaci vložení ve zdroji dat. Další informace najdete v tématu Vytváření, přidávání, úpravy a odstraňování objektů.
Metodu Add lze volat vícekrát ve stejné instanci objektu.