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