【问题标题】:parallel insert, update, delete with Entity Framework 4.3.1使用 Entity Framework 4.3.1 并行插入、更新、删除
【发布时间】:2012-08-16 13:38:07
【问题描述】:

是否可以使用 Entity Framework 4.3.1 并行插入、更新、删除 1,000 个不同的表行?

你会怎么做?并行框架任务?线程?还有什么?

【问题讨论】:

  • 因为 dbContext 不是线程安全的,我会创建一个池并在池上运行作业。休息取决于您的数据库、事务级别和所涉及的表......

标签: entity-framework parallel-processing task-parallel-library


【解决方案1】:

您可以使用 TPL 来执行此操作,但我怀疑 EF。使用 ADO.NET,如果要对同一行进行调用(最有可能更新),您可能希望确保每次调用的 CommandText 都是唯一的。因此,您可能需要在每次更新时创建一个新连接并关闭它。使用连接池仅对您不希望的选择查询有意义;当其他线程执行相同操作时,不希望不同的线程对同一个表进行更新。插入可能不是问题。我也不知道删除会如何。如果一行已经被删除,除非你返回并使用它,否则什么都不会发生。

或者您可以做的是将项目复制到集合(更新删除现有的),然后进行批量插入。

您必须进行测试才能找到答案!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多