コード例 #1
0
    public void TestMethod1()
    {
        var lambda = new ExpressionCriteria <Person>()
                     .Add("Age", 60, ExpressionType.GreaterThan)
                     .And()
                     .Add("Address.City", "Paoli",
                          ExpressionType.Equal)
                     .Or()
                     .Add("Address.Street", "Market Street",
                          ExpressionType.Equal)
                     .Or()
                     .Add("Address.Id", "cf7e83b6-5cec-41d2-a100-2ff079392f7a", ExpressionType.Equal)
                     .GetLambda();


        var expected = "person => ((((person.Age > 60) And (person.Address.City == \"Paoli\")) Or (person.Address.Street == \"Market Street\")) Or (person.Address.Id == \"cf7e83b6-5cec-41d2-a100-2ff079392f7a\"))";

        Assert.Equal(expected, lambda.ToString());
        var result = _people.Where(lambda.Compile()).ToList();

        Assert.Equal("Smith", result[0].LastName);
    }