生成SQL語句的功能可以算是LinqToDB框架的最后一步。從上一章中我們可以知道處理完表達式樹之后,相關生成SQL信息會被保存在一個叫SelectQuery類的實例。有了這個實例我們就可以生成對應的SQL語句。想要了解這一步部分的功能就必須從三個方面入手。一、Linq To SQL的機制原理。二、如何生成SQL語句。三、設置映射結果。

生成映射表達式


對于Linq To SQL的機制原理在前面的章節(jié)里面已經講過了。這里筆者提出來主要目標是明確什么時候觸發(fā)。下面的代碼不是看前面的獲得Query<T>類實列,而是看后面的GetIEnumerable方法調用。

 ExpressionQuery<T>類:

IEnumerable<T> Execute(IDataContextInfo dataContextInfo, Expression expression)
{    return GetQuery(expression, true).GetIEnumerable(null, dataContextInfo, expression, Parameters);}

記得筆者前面幾個章節(jié)中講到最后都會去調用倆個方法分別是Query<T>類中的GetIEnumerable方法和GetElement方法。而這倆個方法都是Func類型。如下

public Func<QueryContext, IDataContextInfo, Expression, object[], object> GetElement;public Func<QueryContext, IDataContextInfo, Expression, object[], IEnumerable<T>> GetIEnumerable;

顯然很明顯在調用GetIEnumerable方法一定要知道哪一個方法賦給他了。好了,先暫停一下。讓我們去看一下上一章中筆者講到Build<T>()方法有三個重要方法中的一個——BuildQuery()方法。

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

 1 internal Query<T> Build<T>() 2 { 3      var sequence = BuildSequence(new BuildInfo((IBuildContext)null, Expression, new SelectQuery())); 4  5   &nbs
        
		

網友評論