我目前的项目需要与外部系统的日常同步.同步是基于复杂的导入文件结构,它被广泛的业务逻辑解析和处理.由于业务逻辑,我们决定在.NET代码中进行此操作,并重用现有的BL组件,而不是在存储过程或集成服务中写入相同的逻辑.
BL层位于EF 4.0数据访问层的顶部.当前实现进程导入批处理,将所有更改填充到ObjectContext中,并在事务中执行SaveChanges.当我检查sql分析器时,我看到EF执行每个实体更改为单个sql命令(自己往返DB).此外,这些命令看起来完全顺序执行.所以我有多达100.000往返数据库,用于初始导入,每天同步数据库之间的往返10.000到50.000之间.
是否可以通过EF本身或某些提供商/扩展名以某种方式批量插入/更新/删除命令?