Подтвердить что ты не робот

LINQ to Entities, как обновить запись

Хорошо, поэтому я новичок в EF и LINQ. Я выяснил, как ВСТАВИТЬ и УДАЛИТЬ, но почему-то UPDATE, похоже, скрывает мое понимание.

Вот пример моего кода:

EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
     Name = "Test",
     Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();

Вышеуказанное создает и добавляет запись просто отлично.

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();

Вышеупомянутое эффективно удаляет указанную запись.

Теперь как мне обновить? Я не могу найти метод < UpdateObject() в коллекции сущностей.

4b9b3361

Ответ 1

Просто измените одно из возвращаемых объектов:

Customer c = (from x in dataBase.Customers
             where x.Name == "Test"
             select x).First();
c.Name = "New Name";
dataBase.SaveChanges();

Примечание. Вы можете обновить объект (что-то, что расширяет EntityObject, а не то, что вы проецировали, используя что-то вроде select new CustomObject{Name = x.Name}

Ответ 2

//для обновления

(from x in dataBase.Customers
         where x.Name == "Test"
         selext x).ToList().ForEach(xx => x.Name="New Name");

//для удаления

dataBase.Customers.RemoveAll(x=>x.Name=="Name");

Ответ 3

Оба они отслеживают ваши изменения в коллекции, просто вызовите метод SaveChanges(), который должен обновить БД.