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

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

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

 

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 真是件又苦又累的差事。

怎么破?

posted @ 2015-06-30 16:33  灬后知后觉  阅读(503)  评论(0编辑  收藏  举报