c# - 使用 DbSet 时是否也将主键属性标记为已修改.Update() 方法?
问题描述
DbSet.Update() 的定义是:
“开始跟踪给定的实体…………实体的所有属性都将被标记为已修改。”
它包括主键属性吗?如果主键属性也标记为已修改,为什么主键不在生成的 SQL 中Set [primarykey] = XXX
?(其中 XXX 应该与数据库中的主键值相同)
解决方案
我怀疑答案是否定的,但你可以自己检查一下。
DbSet.Update
返回“EntityEntry
实体的 The”,您可以使用它来查看它已标记为已修改的属性。例如:
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");
}
推荐阅读
- python - Matplotlib 紧密布局设置矩形元组
- python - Korf 的魔方求解算法用 Python 实现?
- expect - 记录衍生进程的标准输出,仅记录 Expect 的衍生进程
- python - Django Channels:如何将传入消息传递给在 django 之外运行的外部脚本?
- reactjs - React Router 每页布局不同
- c - 如何正确进行居中缩放?
- python - 如何在 python 中运行列表中的每个字符串?(os.startfile)
- ios - 即使应用程序处于前台或后台或iOS中的终止状态,是否可以重复触发方法
- javascript - 为 CannonDebugRenderer 导入 Javscript 文件与 Webpack 构建包
- arrays - 如何在C中截断字符串数组