我有实体类:
public class Account : IAccount
{
[Key, ForeignKey("PUser")]
public int IdUser { get; set; }
public virtual User PUser { get; set; }
[Required]
public decimal Balance { get; set; }
}
但是当我尝试更新检索实体并将新值设置为属性Balance
时,该值不会发生变化。
为什么会发生这种情况,我应该如何改变呢?
Account senderAccount = _context.Accounts.FirstOrDefault(u => u.IdUser == userSenderId);
if (senderAccount != null)
senderAccount.Balance = 400;
之后senderAccount.Balance
仍有旧值
Thnx
答案 0 :(得分:4)
在调用SaveChanges
方法之前,不会将查询发送到数据库。所以你要做的就是在想要向数据库发送查询时添加_context.SaveChanges();
行。在你的情况下,它应该是这样的:
Account senderAccount = _context.Accounts.FirstOrDefault(u => u.IdUser == userSenderId);
if (senderAccount != null)
senderAccount.Balance = 400;
_context.SaveChanges();
此外,如果适用,请不要忘记在using
块内部创建上下文。
阅读更多here。