根据EF Core

时间:2019-01-27 14:01:01

标签: entity-framework-core

EntityFramework Core是否提供了一种以这种方式创建更新查询的方法,它将创建一个UPDATE,该UPDATE计算数字列而不是绝对值的变化?

有关问题的上下文
考虑以下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()期间将结果语句发送到数据库 将是这样的:

  

更新设置[值] = 6 WHERE ID = 1

但是我希望它制定这样的更新语句:

  

更新设置[值] = [值] + 5 WHERE ID = 1

为什么?
如果要像第二次更新那样创建更新,则无需我采取有关并发的预防措施。该数据库应该能够为我处理。

我知道,我可以创建一个以这种方式处理更新的StoredProcedure,但是如果EFCore只是拆分Update命令,使(所有)数字列按差异进行更新,那似乎不是必需的。 那么-是否有集成的方法可以做到这一点,或者在SaveChanges()期间是否有可行的方法来实现它?

0 个答案:

没有答案