Обновление и удаление
Текущее ограничение Entity Framework - это то, что для обновления или удаления объекта вы должны сначала извлечь его в память. Кроме того, для одиночных удалений объект должен быть извлечен до того, как он может быть удален, требуя двух обращений к базе данных. Чтобы преодолеть эту проблему, мы должны расширить текущую структуру сущностей, используя EntityFramework.Extended. EntityFramework.Extended имеет полезные функции, такие как пакетное обновление и удаление, журнал аудита, кэш результатов запросов, будущие запросы. Пакетное обновление и удаление устраняет необходимость извлекать и загружать объект перед его изменением. Вот несколько строк кода, демонстрирующих, как удалять, обновлять.
Установка через nuget
PM> Install-Package EntityFramework.Extended
Обновление
Сценарий: обновление клиентов, которые имеют страну США.
Если мы делаем это без каких-либо расширений, мы должны выбрать всех клиентов, которые имеют страну USA, изменить список и обновить его с помощью циклов. Используя Entity Framework.Exdended нам не нужно извлекать список клиентов, просто добавьте условие «Где», задайте данные для обновления и выполните запрос.
static void Main(string[] args)
{
using(var db = new DataContext())
{
db.Customers.Where(c => c.Country == "USA").Update(c => new Customer()
{
Country = "IN"
});
foreach(var customer in db.Customers.ToList())
{
Console.WriteLine("CustomerInfo - {0}-{1}-{2}", customer.Name, customer.Country, customer.Status);
}
}
Console.ReadLine();
}
https://code.msdn.microsoft.com/entity-framework-batch-994cd739