Я использую Entity Framework Extended для выполнения пакетного обновления так же, как в примере ниже от официальной документации (https://github.com/loresoft/EntityFramework.Extended/wiki/Batch-Update-and-Delete):Как метод Entity Framework Extended batch Update обрабатывает значения по умолчанию?
//update all tasks with status of 1 to status of 2
context.Tasks
.Where(t => t.StatusId == 1)
.Update(t => new Task { StatusId = 2 });
Это работает, но я хотел бы знать внутреннюю работу. Как это относится к значениям по умолчанию для объекта Task
. Предположим, что у него есть свойство, называемое MyProperty
, которое является int
, которое по умолчанию равно 0
. Когда инициализируется объект Task
, значение MyProperty
будет иметь значение по умолчанию 0
. Как Entity Framework Extended различает MyProperty
с значением по умолчанию 0, или если я пытаюсь установить MyProperty
всех согласованных объектов на их значение по умолчанию 0, например. new Task { StatusId = 2 , MyProperty = 0}
как созданный объект Task
будет точно таким же в каждом случае?
О, это часть выражения, а не объект. Теперь это имеет смысл. –
Да, поэтому вы проходите в лямбда ('t =>'), а не просто 'new Task {...}' – Jcl