Condividi tramite


EntityCollection<TEntity>.Add(TEntity) Metodo

Definizione

Aggiunge un oggetto alla raccolta.

public:
 virtual void Add(TEntity entity);
public void Add (TEntity entity);
override this.Add : 'Entity -> unit
Public Sub Add (entity As TEntity)

Parametri

entity
TEntity

Oggetto da aggiungere alla raccolta. L'oggetto entity deve implementare IEntityWithRelationships.

Implementazioni

Eccezioni

entity è null.

Esempio

Questo esempio è basato sul modello Sales di Adventure Works. Per eseguire il codice incluso in questo esempio, è necessario avere già aggiunto il modello Sales di Adventure Works al progetto e avere configurato il progetto per l'utilizzo di Entity Framework. A tale scopo, completare le procedure in Procedura: Configurare manualmente un progetto Entity Frameworke Procedura: Definire manualmente il modello e i file di mapping.

In questo esempio vengono create due nuove entità SalesOrderHeader che vengono aggiunte all'entità Contact e, dopo avere rimosso un oggetto, viene utilizzato il metodo Add per aggiungere nuovamente l'oggetto alla raccolta.

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);
    }
}

Commenti

Il metodo Add aggiunge un oggetto a EntityCollection<TEntity> e crea una relazione tra i due oggetti. Quando l'oggetto di origine viene connesso a un'istanza di ObjectContext, il metodo Add aggiunge inoltre l'oggetto a ObjectContext. Questa operazione viene tradotta in un'operazione di inserimento nell'origine dati quando viene chiamato il metodo SaveChanges. Per altre informazioni, vedere Creazione, aggiunta, modifica e eliminazione di oggetti.

Il metodo Add può essere chiamato più volte sulla stessa istanza dell'oggetto.

Si applica a