DbSet.Update()的定义是:
“开始跟踪给定的实体...。...该实体的所有属性都将被标记为已修改。”
它包括主键属性吗?如果主键属性也标记为已修改,那么为什么不在生成的SQL的Set [primarykey] = XXX
中使用主键?(其中XXX应该与数据库中的主键值相同)
答案 0 :(得分:3)
我怀疑答案是否定的,但是您可以自己检查一下。
DbSet.Update
返回“实体的EntityEntry
”,您可以用来查看其已标记为已修改的属性。例如:
var entity = dbContext.MyTable.Update(myRecord);
foreach (var modifiedProperty in entity.Properties.Where(p => p.IsModified)) {
Console.Write($"The {modifiedProperty.Metadata.Name} property is marked as modified");
}