【发布时间】:2021-08-14 02:59:36
【问题描述】:
我找到了相关问题,但我的问题似乎有所不同。
运行以下代码:
var dbitem = context.MyDatabaseItems.Single(p => p.Id == someId);
context.Update(dbitem);
context.SaveChanges();
导致“无法更新身份列'Id'”。后面的桌子有点特别。由于不同的原因,“Id”不是主键。主键由其他字段的组合组成。无论我做什么:分离、重新附加等现有项目即使我不更改它,我也无法保存实体(参见代码)。
但是这个 ID 是唯一的并且是自动生成的。
构建器如下:
builder.Property(p => p.Id)
.ValueGeneratedOnAdd();
builder.HasKey(p => new { p.BusinessDay, p.ClientId, p.Version });
BusinessDay 是 dateTime,CLientId 和 Version 是整数。
这是怎么回事?
【问题讨论】:
标签: entity-framework-core asp.net-core-3.1