Обновите целые числа (или числа) по разнице в EF Core - PullRequest
0 голосов
/ 27 января 2019

Предоставляет ли EntityFramework Core способ создания запроса на обновление таким образом, он создаст ОБНОВЛЕНИЕ, которое вычисляет изменение числового столбца вместо абсолютного значения?

Контекст по вопросу
Рассмотрим следующий DbContext:

public class MyValue {
  public int Id {get;set;}
  public int Value {get;set;}
}

public class MyContext : DbContext {
 public DbSet<MyValue> Values {get;set;}
}

Простая команда может сделать следующее:

var newValue = new MyValue { Value = 1 };
_dbContext.Add(newValue);
_dbContext.SaveChanges();

var value = _dbContext.Values.First();
value = value + 5;
_dbContext.SaveChanges();

Результирующий оператор, который будет отправлен в базу данных во время SaveChanges() Будет что-то вроде этого:

UPDATE SET [Value] = 6 WHERE ID = 1

Но я бы хотел сформулировать оператор обновления следующим образом:

УСТАНОВКА ОБНОВЛЕНИЯ [Значение] = [Значение] + 5 ГДЕ ИД = 1

ПОЧЕМУ?
Если обновление будетсозданный как второй, мне не нужно было бы принимать меры предосторожности относительно параллелизма.База данных должна быть в состоянии справиться с этим для меня.

Мне известно, что я мог бы создать StoredProcedure, обрабатывающий обновление таким образом, но это не является необходимым, если EFCore просто разделит команды Update, заставляя (все) числовые столбцы обновляться по разнице.Итак, есть ли интегрированный способ сделать это, или есть реальный способ реализовать это во время SaveChanges ()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...