Entity Framework 性能优化:无跟踪模式与批量更新
1. 批量更新(Bulk Update)
在数据库操作中,有时需要对大量数据进行更新。可以使用 EFPlus 组件的 Update()
扩展方法来实现批量更新。以下是一个示例代码,用于将所有从柏林出发的未来航班的剩余座位数减 1:
public static void BulkUpdateEFPlus()
{
CUI.Headline(nameof(BulkUpdateEFPlus));
using (var ctx = new WWWingsContext())
{
var count = ctx.FlightSet.Where(x => x.Departure == "Berlin" && x.Date >= DateTime.Now).Update(x => new Flight() { FreeSeats = (short)(x.FreeSeats - 1) });
Console.WriteLine("Changed records: " + count);
}
}
操作步骤如下:
1. 创建 WWWingsContext
上下文实例。
2. 使用 Where()
方法筛选出从柏林出发且日期在当前日期之后的航班。
3. 调用 Update()
方法,将筛选出的航班的 F