如何在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中进行这种"大规模"更新的最佳方式是什么?
我应该只添加每个更新然后再添加
SaveChanges
吗?
是的。
请注意,EF是一个ORM,所以它并不是真正为这种性质的大批量更新而设计的(我的意思是性能方面)。如果您需要从它中获得更多的性能,那么您几乎可以编写一批SQL语句并以老式的方式执行它们。
大多数人(我的意思是除了Facebook, Twitter等)通常看不到你所建议的问题,但是,你得到的层次越低,你的代码的意图就越迷失在所有的技术实现中。
必须强调的是,没有必要改进代码的性能,除非您已经度量了它并发现它不足。首先编写正确性、可读性和可维护性的代码,然后测量性能,并在发现需要的地方进行有针对性的改进。