码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-30 18:07:01      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

这篇文章将在前人的肩上,继续完成实现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 真是件又苦又累的差事。

怎么破?

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

标签:

原文地址:http://www.cnblogs.com/HouZhiHouJueBlogs/p/4610924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!