【发布时间】:2016-12-28 14:27:26
【问题描述】:
如果我有更新条目的代码,并且在输入可能十列的数据后,更新只更改了两列,其余列保持不变,它是保存所有十列还是只保存更改的两列?
如果我更新了 10 列,但每一列都没有任何变化,是否会费心进行更新?
例子
col1 | col2 | col3
-----|------|-----
1 |2 |3
将 col1 更新为 1,将 col2 更新为 2,将 col3 更新为 4。是保存所有三个还是只保存 col3,因为它是唯一更改的?
如果我将 col1 更新为 1,将 col2 更新为 2,将 col3 更新为 3,没有任何变化,所以它仍然更新吗?
关于那个注释,我怎样才能看到 SaveChanges 生成的 SQL?
【问题讨论】:
-
如何查看EF生成的SQL见this answer
-
这取决于您使用 EF 的方式。如果您正在修改的实体已附加,它只会更新更改的列。如果它没有附加并且您在保存之前没有检索当前值,它将更新除主键之外的所有列。
标签: vb.net linq entity-framework-6