使用前导查询更新 / 删除


  前导更新或删除是指,使用 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 等表达式不会生效。