【发布时间】:2016-07-25 16:06:59
【问题描述】:
假设数据库中有一些这样的记录:
Id v1 v2 v31 1 1 12 2 2 23 3 3 34 4 4 4
假设我的新记录如下所示:Id v1 v2 v31 1 2 15 5 5 5
现在,我想以这种方式插入我的新记录:
1.检查id是否存在于数据库中;
2.如果不存在,直接插入记录;
3.如果存在,则检测记录是否与新记录相同。如果不是,则仅更新更改的值。
由于我的真实数据非常大并且包含50多个变量并且我想快速插入,我想问一下是否有任何通用方法来检测相同ID的新记录是否与实体中的现有记录不同框架。我无法执行 50+ if 来查看哪些变量已更改。
请确保您的解决方案适用于大型数据集,谢谢。
【问题讨论】:
-
如果ID已经存在,为什么还要检查50多个字段是否不同?您是否有特定的性能问题,或者您只是过早地进行优化?
-
我正要问同样的问题。
-
If it exists, detect if the record is the same as the new one. If not, only update the changed values。通过用新记录替换整个旧记录,您将获得相同的效果 -
@PaulAbbott,问题是我想用不同的值更新这些字段
标签: c# sql-server entity-framework