gpt4 book ai didi

c# - EF 实体未为属性设置新值

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:56 25 4
gpt4 key购买 nike

我有实体类:

 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 仍然有旧值

感谢

最佳答案

在调用 SaveChanges 方法之前,查询不会发送到数据库。所以你要做的是在你想向数据库发送查询时添加 _context.SaveChanges(); 行。在您的情况下,它应该如下所示:

Account senderAccount = _context.Accounts.FirstOrDefault(u => u.IdUser == userSenderId);
if (senderAccount != null)
senderAccount.Balance = 400;
_context.SaveChanges();

此外,如果适用,不要忘记在 using block 中创建上下文。阅读更多 here .

关于c# - EF 实体未为属性设置新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39093732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com