实体框架并行任务vs WCF

本文关键字:WCF vs 并行任务 框架 实体 | 更新日期: 2023-09-27 18:15:27

我需要插入一些数据,我通过从我的UI调用WCF并传递一个对象列表来完成它。然后服务调用较低的业务层,该业务层依次插入条目(调用其他几个管理器并通过ObjectContext进行大量调用/插入)

现在我不明白的问题是:

  • 如果我多次调用服务并逐个传递项,一切都可以正常工作,插入可以并行执行,并且我在时间方面获得了一些性能优势。

  • 如果我尝试在服务类中调用并行foreach,我得到了一个异常,因为ObjectContext不是线程安全的,但我不能每次使用它时都锁定代码,因为它发生的时间太多了

为什么如果我调用WCF它工作?在我的经理类中有同样的方法吗?

谢谢

实体框架并行任务vs WCF

根据您的服务配置,为每个并行服务调用创建一个新实例。但是在服务中使用并行循环将导致多次使用相同的ObjectContext。所以基本上,通过WCF调用并行创建多个ObjectContexts,其中在WCF服务中执行只使用一个(如您所知,这不是线程安全的)。根据插入的性质,这可能没有问题。您还可以在服务中启动多个objectcontext。

其中一些是胡乱猜测,因为您实际上可以影响WCF服务的行为,使其不运行多个实例,但从您的经验判断,这应该是您可以使用WCF服务而不是在WCF服务中执行并行插入的原因。