如何在EF中进行批量更新

本文关键字:更新 EF | 更新日期: 2023-09-27 18:03:59

我在WCF服务上有以下方法:

    /// <summary>
    /// Receives the result of a request processing
    /// </summary>
    /// <param name="results">The resulting statuses for the processed account requests</param>
    /// <returns>Whether the response was successfully handled</returns>
    public bool SendRequestProcessingResult(IEnumerable<RequestProcessingResult> results)
    {
        foreach (var result in results)
        {
            // update entity
        }
    }

是否有办法一次更新所有的实体?我应该只添加每个更新然后再添加SaveChanges吗?在EF 4.1中进行这种"大规模"更新的最佳方式是什么?

如何在EF中进行批量更新

我应该只添加每个更新然后再添加SaveChanges吗?

是的。

请注意,EF是一个ORM,所以它并不是真正为这种性质的大批量更新而设计的(我的意思是性能方面)。如果您需要从它中获得更多的性能,那么您几乎可以编写一批SQL语句并以老式的方式执行它们。

大多数人(我的意思是除了Facebook, Twitter等)通常看不到你所建议的问题,但是,你得到的层次越低,你的代码的意图就越迷失在所有的技术实现中。

必须强调的是,没有必要改进代码的性能,除非您已经度量了它并发现它不足。首先编写正确性、可读性和可维护性的代码,然后测量性能,并在发现需要的地方进行有针对性的改进。