EntityCollection<TEntity>.Contains(TEntity) 方法

定义

确定特定对象是否存在于集合中。

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

参数

entity
TEntity

要在 EntityCollection<TEntity> 中定位的对象。

返回

如果在 EntityCollection<TEntity> 中找到对象,则为 true;否则为 false

实现

示例

此示例基于 Adventure Works 销售模型。 若要运行此示例中的代码,必须已将 AdventureWorks 销售模型添加到您的项目中,并将项目配置为使用实体框架。 为此,请完成 如何:手动配置实体框架项目如何:手动定义模型和映射文件中的过程。

此示例将执行下列操作:

  1. 创建两个新的 SalesOrderHeader 实体并添加到 Contact 实体。

  2. 从与 Contact 实体关联的 RelationshipManager 中获取所有相关端。

  3. 循环访问 IRelatedEnd 集合。

  4. 获取每个相关端的 EntityCollection<TEntity>

  5. 使用 Remove 方法从集合中移除其中一个实体。

  6. 调用 Contains 方法确定该对象是否已从集合中移除。

  7. 使用 Add 方法添加回实体。

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

注解

使用 Object.Equals 方法来比较指定对象和集合中已经存在的对象。

适用于