产品说,我只需要一个有亿点复杂的查询界面
有的时候,你需要动态构建一个比较复杂的查询条件,传入数据库中进行查询。而条件本身 可能来自前端请求或者配置文件。那么这个时候,表达式树,就可以帮助到你。本文我们将通过几个简短的示例来了解如何完成这些操作。
你也可能接到过这些需求
今天我们看看表达式树如何实现这些需求。
一切都还要从盘古开天开始说起
以下是一个简单的单元测试用例。接下来,我们将这个测试用例改的面目全非。
[Test]
public void Normal()
{
var re = Enumerable.Range(0, 10).AsQueryable() // 0-9
.Where(x => x >= 1 && x < 5).ToList(); // 1 2 3 4
var expectation = Enumerable.Range(1, 4); // 1 2 3 4
re.Should().BeEquivalentTo(expectation);
}