Aracılığıyla paylaş


EntityCollection<TEntity>.Remove(TEntity) Yöntem

Tanım

Koleksiyondan bir nesneyi kaldırır ve ilişkiyi silinmek üzere işaretler.

public:
 virtual bool Remove(TEntity entity);
public bool Remove (TEntity entity);
override this.Remove : 'Entity -> bool
Public Function Remove (entity As TEntity) As Boolean

Parametreler

entity
TEntity

Koleksiyondan kaldırılacak nesne.

Döndürülenler

true öğe başarıyla kaldırıldıysa; aksi takdirde , false.

Uygulamalar

Özel durumlar

entity nesnesidir null.

Nesne entity aynı nesne bağlamı için bağlı değil.

-veya-

Nesnenin entity geçerli bir ilişki yöneticisi yok.

Örnekler

Bu örnekte Adventure Works Satış Modeli temel alınmaktadır. Bu örnekte kodu çalıştırmak için AdventureWorks Satış Modeli'ni projenize zaten eklemiş ve projenizi Entity Framework kullanacak şekilde yapılandırmış olmanız gerekir. Bunu yapmak için , Nasıl yapılır: Entity Framework Projesini El ile Yapılandırma ve Nasıl Yapılır: Model ve Eşleme Dosyalarını El ile Tanımlama içindeki yordamları tamamlayın.

Bu örnek, varlıklardan birini koleksiyondan kaldırmak için yöntemini kullanır Remove ve ardından nesnesinin koleksiyondan kaldırılıp kaldırılmadığını belirlemek için yöntemini çağırır Contains .

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

Açıklamalar

yöntemi, Remove kaynak nesne ile koleksiyondan kaldırılan nesne arasındaki ilişkiyi de siler. İlişkinin bilgi tutarlılığı kısıtlaması varsa, bağımlı nesnede yöntemini çağırmak Remove hem ilişkiyi hem de bağımlı nesneyi silinmek üzere işaretler. Bu durum, kısıtlamanın bağımlı nesnenin üst öğeyle ilişkisi olmadan var olamayacağını gösterdiğinden oluşur. Daha fazla bilgi için bkz . ReferentialConstraint Öğesi (CSDL).

Remove belirtilen nesne koleksiyonda olmadığında döndürür false .

Şunlara uygulanır