.net – 实体框架4.0中的批处理数据库命令
发布时间:2020-12-12 16:09:30 所属栏目:MsSql教程 来源:网络整理
导读:我目前的项目需要与外部系统的日常同步.同步是基于复杂的导入文件结构,它被广泛的业务逻辑解析和处理.由于业务逻辑,我们决定在.NET代码中进行此操作,并重用现有的BL组件,而不是在存储过程或集成服务中写入相同的逻辑. BL层位于EF 4.0数据访问层的顶部.当前实
我目前的项目需要与外部系统的日常同步.同步是基于复杂的导入文件结构,它被广泛的业务逻辑解析和处理.由于业务逻辑,我们决定在.NET代码中进行此操作,并重用现有的BL组件,而不是在存储过程或集成服务中写入相同的逻辑.
BL层位于EF 4.0数据访问层的顶部.当前实现进程导入批处理,将所有更改填充到ObjectContext中,并在事务中执行SaveChanges.当我检查SQL分析器时,我看到EF执行每个实体更改为单个SQL命令(自己往返DB).此外,这些命令看起来完全顺序执行.所以我有多达100.000往返数据库,用于初始导入,每天同步数据库之间的往返10.000到50.000之间. 是否可以通过EF本身或某些提供商/扩展名以某种方式批量插入/更新/删除命令? 解决方法不,不能做(是的 – 我也哭了).EF不支持批处理操作,LINQ-SQL有(同)问题. 你有几个选择: >存储过程 我以前选择了1和3. 所有这三种方法的问题是您失去了EF抽象,内部图形(乐观并发),并将您带回到本机SQL的世界. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |