LinqProvider系列(三)如何实现自己的Linq Provider?

这篇文章将在前人的肩上,继续完成实现Linq Provider的任务。

首先,我们列出linq语法的解析过程:

LinqProvider系列(三)如何实现自己的Linq Provider?

linq本质上就是把我们惯用的语法糖,变成了一颗表达式树,然后由不同的linq Provider根据表达式树的内容,转化为自己所需要的数据结构,进而进行真正的数据查询。

实现自己的Linq Provider不是一件很难的事情,最关键的就是实现如下接口:

       public TResult Execute<TResult>(System.Linq.Expressions.Expression expression)
{
throw new NotImplementedException();
} public object Execute(System.Linq.Expressions.Expression expression)
{
throw new NotImplementedException();
}

虽然是两个方法,但是是同一个意思,从表达式树中解析数据,然后完成自己的业务逻辑。

在观看了微软Linq Provider的例子之后(https://msdn.microsoft.com/zh-cn/library/vstudio/bb546158(v=vs.110).aspx)

我只能说解析Linq Expression 真是件又苦又累的差事。

怎么破?

上一篇:一些java的部署执行编译等命令


下一篇:printf格式输出数字,位数不够前面补0,适用与输出编号