EntityCollection<TEntity>.Remove(TEntity) 方法

定義

從集合中移除物件並標記該關聯以供刪除。

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

參數

entity
TEntity

要從集合中移除的物件。

傳回

true若物品成功移除;否則,。 false

實作

例外狀況

entity 物件為 null

物件 entity 不會附加到相同的物件上下文。

-或-

entity 物件沒有有效的關係管理器。

範例

此範例基於 Adventure Works 銷售模型。 要執行這個範例中的程式碼,你必須已經將 AdventureWorks 銷售模型加入你的專案,並設定專案使用實體框架。 為此,請完成 如何:手動配置實體框架 Project 以及 如何:手動定義模型與映射檔案中的步驟。

此範例使用方法 Remove 將其中一個實體從集合中移除,然後呼叫該 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)
            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);
    }
}

備註

Remove 方法同時會刪除來源物件與被移除物件之間的關係。 若關係具有參照完整性限制,則呼叫 Remove 該方法於依賴物件上,標記該關係與依賴物件的刪除。 這是因為該限制表示依賴物件無法在沒有與父物件有關聯的情況下存在。 欲了解更多資訊,請參閱參照約束元素(ReferentialConstraint Element,CSDL)。

Remove 當指定的物件不在集合中時,會回傳 false

適用於