【发布时间】:2012-02-08 22:56:29
【问题描述】:
有没有办法让 EF 上下文无状态,这样我就可以插入一堆 POCO 而不会让它们留在内存中,这相当于 NHibernate 中的无状态会话?这是为了尝试提高批量插入的性能。我将在第一次运行时将 170 万个 POCO 插入到 SQL Server Compact 表中,然后在后续运行中插入/更新记录。
【问题讨论】:
标签: entity-framework entity-framework-4.1
有没有办法让 EF 上下文无状态,这样我就可以插入一堆 POCO 而不会让它们留在内存中,这相当于 NHibernate 中的无状态会话?这是为了尝试提高批量插入的性能。我将在第一次运行时将 170 万个 POCO 插入到 SQL Server Compact 表中,然后在后续运行中插入/更新记录。
【问题讨论】:
标签: entity-framework entity-framework-4.1
No。 EF 将要求您将所有对象加载到上下文(内存)中,然后它将在单独的往返数据库中插入/更新每个对象。
每次性能改进主要基于破解 EF 并试图克服其局限性。在这种情况下,您可以直接自己编写 insert 并手动将它们批处理到SqlCeCommands - 您将更快地构建这样的解决方案,它将具有更好的性能并且更不容易出错。
【讨论】: