我有一个场景,我需要将数据库表与来自外部系统的列表 (XML) 同步。
我正在使用 EF,但不确定在性能方面哪个是实现这一目标的最佳方法。
如我所见,有两种方法可以做到这一点,但对我来说似乎都没有效率。
每次调用 Db -从 XML 中读取每个条目 -尝试从列表中检索条目 -如果未找到条目,则添加条目 -如果找到,更新时间戳 -在循环结束时,删除所有时间戳较旧的条目。
加载所有对象并在内存中工作
- 将所有 EF 对象读入列表。
- 删除所有 EF 对象
- 为 XML 中的每个项目添加项目
- 将更改保存到 Db。
这些列表并不长,估计大约有 70k 行。我不想在插入新行之前清除 db 表,因为该表是来自 web 服务的数据源,并且我不想在可以查询表时锁定表。
如果我在 T-SQL 中执行此操作,我很可能会将行插入到临时表中,并加入以查找丢失和删除的条目,但我不知道在实体框架中处理此问题的最佳方法是什么。
有什么建议/想法吗?