真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何簡單實現(xiàn)自定義LINQ提供器

今天就跟大家聊聊有關(guān)如何簡單實現(xiàn)自定義LINQ提供器,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供圍場企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為圍場眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

工欲善其事,必先利其器。這個道理不論是傳統(tǒng)的制造業(yè)還是如今的軟件開發(fā)業(yè),都是放之于四海皆準(zhǔn)的道理。就拿自定義LINQ提供器來說吧,如今的發(fā)展也是如新月異。

隨著.NET 3.5的正式發(fā)布,自定義LINQ提供器的實現(xiàn)如雨后春筍般不斷涌現(xiàn)。而要開發(fā)自己的自定義LINQ提供器還是需要花費一定的精力的,但Mehfuz Hossain通過他的開源項目——LinqExtender,讓大家可以輕松的開發(fā)自己的自定義LINQ提供器。

Mehfuz Hossain在他的LinqExtender介紹文章中,對LinqExtender作了這樣的介紹:

LinqExtender暴露了如下這樣一個模型,讓開發(fā)人員當(dāng)創(chuàng)建一個自定義提供器的只用關(guān)注于應(yīng)用程序邏輯,而不是查詢的內(nèi)部機理。它位于自定義LINQ框架和自定義提供器之間。

LinqExtender幫助我們完成了大量表達式解析和處理的工作,這樣,我們無需借助Reflection這樣的函數(shù)庫就能實現(xiàn)自己的自定義LINQ提供器。

LinqExtender主要提供了2個基類來幫助開發(fā)自定義LINQ提供器:QueryObjectBase和Query。

Mehfuz Hossain為了介紹LinqExtender的用法,還給出了一個簡單自定義LINQ提供器實現(xiàn)——OpenLinqToSql。OpenLinqToSql的基本實現(xiàn)如下:

實體類需要繼承于QueryObjectBase基類:

class Book : QueryObjectBase        {            [LinqVisible, Identity]            public int? Id { get; set; }            [LinqVisible]            public string Author { get; set; }              [LinqVisible]            public string Title { get; set; }              [LinqVisible]            public string ISBN { get; set; }              [LinqVisible]            public DateTime? LastUpdated {get; set;}              public override bool IsNew              {                get                {                    return Id == null;                }            }        }

自定義LINQ提供器的核心類,需要繼承于Query基類:

public class SqlQuery : Query where T : QueryObjectBase    {    ....    ....    }

要實現(xiàn)對SQL的處理需要按照如下的邏輯進行編碼:

if (bucket.ItemsToTake != null)    {    // 1.Build Select statement using WITH      }    else   {    // 2.General select statement followed by order by , if any      }    // 3. Run query and fill IModify collection.

使用LinqExtender雖然可以幫助開發(fā)人員輕松的實現(xiàn)自己的自定義LINQ提供器,但是它還不那么成熟和完備,如目前的1.3版本缺乏對Group和Join等子句的支持;同時要求實體類繼承于QueryObjectBase基類也是一個不小的弱點。undefined

看完上述內(nèi)容,你們對如何簡單實現(xiàn)自定義LINQ提供器有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


標(biāo)題名稱:如何簡單實現(xiàn)自定義LINQ提供器
文章源于:http://weahome.cn/article/pisgsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部