使用 SwitchWhere
虽然有了 AssertWhere 扩展方法,但是有时候还是需要根据不同的值去 switch 不同的 lambda
表达式,所以你可以使用 SwitchWhere 扩展方法来实现这样的功能。如下所示:
[TestMethod]
public void TestSwitchWhere()
{
using (var db = new DbContext())
{
var state = 0;
var list = db.Orders
.SwitchWhere(state, b => b
.When(0, s => s.OrderDate >= DateTime.Now)
.When(1, s => s.OrderDate >= DateTime.Now.AddDays(-7))
.When(2, s => s.OrderDate >= DateTime.Now.AddDays(-30)
.Else(s => s.OrderDate.Year <= 0))
);
}
}