EntityCollection<TEntity>.Add(TEntity) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Добавляет объект в коллекцию.
public:
virtual void Add(TEntity entity);
public void Add(TEntity entity);
override this.Add : 'Entity -> unit
Public Sub Add (entity As TEntity)
Параметры
- entity
- TEntity
Объект, добавляемый в коллекцию.
entity должен реализовывать IEntityWithRelationships.
Реализации
Исключения
entity равно null.
Примеры
Этот пример основан на модели Adventure Works Sales. Чтобы запустить код в этом примере, необходимо добавить модель продаж AdventureWorks в проект и настроить проект для использования Entity Framework. Для этого выполните процедуры в How to: Вручную настройте entity Framework Project и How to: Manually Define the Model and Mapping Files.
В этом примере создаются две новые SalesOrderHeader сущности, добавляются в Contact сущность, а после удаления объекта используется 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)
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);
}
}
Комментарии
Метод Add добавляет объект в объект EntityCollection<TEntity> и создает связь между двумя объектами. При присоединении исходного ObjectContext объекта к экземпляру Add метод также добавляет объект в ObjectContextобъект. Эта операция преобразуется в операцию вставки в источник данных при SaveChanges вызове. Дополнительные сведения см. в разделе "Создание, добавление, изменение и удаление объектов".
Метод Add можно вызывать несколько раз в одном экземпляре объекта.