您的位置:首页 > 其它

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

2015-06-30 16:33 267 查看
这篇文章将在前人的肩上,继续完成实现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 真是件又苦又累的差事。

怎么破?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: