【发布时间】:2020-06-09 21:56:37
【问题描述】:
我正在使用 EF Core v2.2 向表中插入和更新行。
当我这样做时,我正在循环基于列表并尝试插入表中。对于第一行插入代码按预期工作。
但是,从列表中的第二项开始,该行不会插入到表中。
我调试的时候发现在_rmsContext.save()第二次插入后,表的主键值生成为-9223372036854774802。
这是我的代码
foreach (string account in accntList)
{
var crossBowAccounts = _cbContext.SomeTableRepository
.FindBy(ca => ca.AccountId == account &&
ca.ClientId == model.ClientId)
.FirstOrDefault();
AccountHistory accountHistory = new AccountHistory()
{
AccountId = account,
ClientId = model.ClientId,
UserId = userId,
ActionName = crossBowAccounts == null ? "Add" : "Edit"
};
_rmsContext.AccountHistoryRepository.Add(accountHistory);
_rmsContext.Save();
// Some more insert/update code for a table in a different context .
_rmsContext.Save();
}
这里model 被作为输入传递给方法。
这是我在调试过程中观察到的:
这是我的表架构
【问题讨论】:
-
AccountHistoryId是配置了身份的主键列吗? -
@ChetanRanpariya 是的,我已经用表格模式的屏幕截图更新了我的帖子。
-
AccountHistoryId为负值时,代码会报错吗?AccountHistoryId在_rmsContext.Save();执行后是否有有效值?
标签: c# .net entity-framework entity-framework-core asp.net-core-webapi