表达式树常用在需要动态生成表达式的地方,比如将QueryPrameter对象动态的生成查询表达式,通过EF获取查询结果。
对表达式树的编写就是一个拼装过程,这点需要注意。
以下方法Map,动态的生成new一个对象的表达式。
Demo中使用该方法生成“Person对象转为DTO对象”的表达式。
namespace ConsoleDemo
{
class Program
{
static void Main(string[] args)
{
Person p2 = new Person()
{
Age = 5,
Name = "xx",
Gender = true,
};
var func = ExpressionHelper.Map<Person, Dto>();
Dto dto = func(p2);
Console.ReadKey();
}
}
public class Dto
{
public string Name1 { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public bool Gender { get; set; }
}
public class ExpressionHelper