比如 update KuCun set num=num-1 where id=222;
像这种SQL的原子操作,在EF中如何写呢?
执行非查询语句,调用 DbContext 的 Database 属性的 ExecuteSqlCommand 方法
是这个吗
看来还是要写SQL啊..
@hexllo: 没有啊,有很多种方式的 你不一定要用写sql的方式啊
@hexllo: 修改对象后,db.SaveChanges()这样也可以
update KuCun set num=num-1 where id=222 and timeFlag=1552010161;
言外之意就是在数据表中加个一个字段 timeFlag ,用来做锁标识,当然,这个有点数据库层面了,EF的话可以用事务
假设你的KuCun指的是库存的话,更新库存的问题不只是原子性的问题,即便是能保证原子性,这个SQL也可能将库存降为负值,按我理解你需要的是一个分布式锁