【发布时间】:2019-10-03 20:30:28
【问题描述】:
我正在遍历数据库表中的行,如果满足要求的条件,则更新每行的帐户余额。
满足条件的行不再单独更新,而是更新,并且在同一查询中同时创建具有更新值的新行。
我在同一个应用程序中使用相同的代码来更改单行的帐户余额,并且效果很好。但是当我从 foreach 循环中调用它时,就会出现上述问题:
public bool CreditCustomerAccount(CustomerAccount account, decimal amount)
{
try
{
if (account.Type == AccountType.Current || account.Type == AccountType.Savings)
{
account.AccountBalance += amount;
}
else
{
account.AccountBalance -= amount;
}
_context.Entry(account).State = EntityState.Modified;
_context.SaveChanges();
return true;
}
catch (Exception)
{
return false;
}
}
它会更新有问题的行,但也会使用更新的详细信息创建一个新的数据库表条目
【问题讨论】:
-
尝试调试,看看主键(账号id)为空还是和id一样?
-
你一定忘记把[key]属性放到模型里了。
-
Kevin Wong,它有钥匙。相关条目得到更新。问题只是添加了相同详细信息的新条目。这使得资产负债表无法加起来
-
我加了罗斯