EntityCollection<TEntity>.Add(TEntity) Metod

Definition

Lägger till ett objekt i samlingen.

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

Parametrar

entity
TEntity

Ett objekt som ska läggas till i samlingen. entity måste implementera IEntityWithRelationships.

Implementeringar

Undantag

entity är null.

Exempel

Det här exemplet baseras på Adventure Works försäljningsmodell. Om du vill köra koden i det här exemplet måste du redan ha lagt till AdventureWorks Sales Model i projektet och konfigurerat projektet för att använda Entity Framework. Det gör du genom att utföra procedurerna i Så här: Konfigurera ett Entity Framework-Project och Så här: Definiera modell- och mappningsfiler manuellt.

Det här exemplet skapar två nya SalesOrderHeader entiteter, lägger till dem i Contact entiteten och använder metoden när du har Add tagit bort ett objekt för att lägga till objektet i samlingen igen.

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

Kommentarer

Metoden Add lägger till ett objekt i en EntityCollection<TEntity> och skapar en relation mellan de två objekten. När källobjektet är kopplat till en ObjectContext instans Add lägger metoden även till objektet i ObjectContext. Den här åtgärden översätts till en infogningsåtgärd i datakällan när SaveChanges den anropas. Mer information finns i Skapa, lägga till, ändra och ta bort objekt.

Metoden Add kan anropas flera gånger på samma objektinstans.

Gäller för