使用前导查询更新 / 删除
前导更新或删除是指,使用 Where、AssertWhere、BatchOr、BatchAnd 查询出结果后,再使用 Update 或 Delete 方法。
Update / UpdateAsync 可以使用和 更新实体 相同的方法,示例如下:
[TestMethod]
public void TestUpdateByQuery()
{
using (var db = new DbContext())
{
db.Orders
.AssertWhere(true, s => s.EmployeeID != 1L)
.Where(s => s.OrderDate > DateTime.Now)
.Update(p => { p.CustomerName = "fireasy"; }); //使用初始化委托
}
}
Delete / DeleteAsync 可以使用逻辑删除参数,请参阅 删除实体,示例如下:
[TestMethod]
public void TestDeleteByQuery()
{
using (var db = new DbContext())
{
db.Orders
.AssertWhere(true, s => s.EmployeeID != 1L)
.Where(s => s.OrderDate > DateTime.Now)
.Delete();
}
}
💡 注意事项
在使用前导查询更新或删除操作时,Segment、Skip / Take 等表达式不会生效。