Linq介紹:
LINQ是Language Integrated Query的簡稱,它是集成在.NET編程語言中的一種特性。已成爲編程語言的一個組成部分,在編寫程序時可以得到很好的編譯時語法檢查,豐富的元數據,智能感知、靜態類型等強類型語言的好處。並且它同時還使得查詢可以方便地對內存中的信息進行查詢而不僅僅只是外部數據源。
LINQ定義了一組標準查詢操作符用於在所有基於.NET平臺的編程語言中更加直接地聲明跨越、過濾和投射操作的統一方式,標準查詢操作符允許查詢作用於所有基於IEnumerable<T>接口的源,並且它還允許適合於目標域或技術的第三方特定域操作符來擴大標準查詢操作符集,更重要的是,第三方操作符可以用它們自己的提供附加服務的實現來自由地替換標準查詢操作符,根據LINQ模式的習俗,這些查詢喜歡採用與標準查詢操作符相同的語言集成和工具支持。
我們來總體看看LINQ結構:
需要說明一點的是,Linq是從.NET3.5開始支持的,.NET3.5 Framework 中提供了 LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML等默認支持。
以上內容是摘抄自互聯網的相關內容,簡單的說明了一下Linq及Linq的應用,如果說單純的那麼Linq是一種語言中的特性的話LINQ to Objects、Linq to SQL就是這種語言特性在對象查詢、SQL查詢中的具體應用。
Linq to EAS.NET:
Linq to EAS.NET 同LINQ to Objects、Linq to SQL 一樣,是應用了Linq這種語言特殊在AgileEAS.NET平臺的Orm體系的應用,類似於Linq to SQL、Linq to Entities,應用Linq語言特殊實現AgileEAS.NET平臺Orm對象的查詢,讓使用AgileEAS.NET平臺進行開發變得更加簡單和方便。
下面我們來進行一個簡單的Linq to EAS.NET 應用吧:
第一步:打開對象設計器,建設一個實體對象(Product),並生成代碼:
第二步:打開AgileEAS.NET平臺對象設計器生成的代碼,增加一個Asp.NET Web應用程序LinqDemo.WebUI,並且在Default.aspx頁面中拖放一個GridView並且設定綁定信息如下:
第三步:使用linq編寫數據查詢代碼並綁定到GridView:
第四步:修改Web.Config文件,增加以下配置信息:
<EAS.Objects>
<!--訪問器。-->
<object name="DataConnection" assembly="EAS.Data" type="EAS.Data.Access.SqlClientConnection" LifestyleType="Singleton">
<property name="ConnectionString" type="string" value="Data Source=.;Initial Catalog=demo;User ID=sa;Password=sa1234;"/>
</object>
<object name="DataAccessor" assembly="EAS.Data" type="EAS.Data.Access.SqlClientAccessor" LifestyleType="Singleton">
<property name="Connection" type="object" value="DataConnection"/>
</object>
<object name="OrmAccessor" assembly="EAS.Data" type="EAS.Data.ORM.OrmAccessor" LifestyleType="Singleton">
<property name="DataAccessor" type="object" value="DataAccessor"/>
<property name="PageProvider" type="object" value="PageProvider"/>
</object>
<object name="PageProvider" assembly="EAS.Data" type="EAS.Data.ORM.OraclePageProvider" LifestyleType="Thread"/>
<object name="ServiceBridger" assembly="EAS.MicroKernel" type=" EAS.Services.LocalServiceBridger" LifestyleType="Singleton"/>
<object name="Logger" assembly="EAS.MicroKernel" type="EAS.Services.TextLogger" LifestyleType="Singleton"/>
</EAS.Objects>
最後:編譯運行,看看結果:
OK,通過以上簡單的過程,基於Linq to EAS.NET實現了一個簡單的like查詢,相信大家已經看到了這個編程的便宜性,接下來我將會在把有關於Linq to EAS.NET所實現的表達式做一些簡單的說明。
支持那些表達式:
Linq所支持的表達式非常的多,AgileEAS.NET平臺只是實現了使用最頻繁的那些表達式,對錶沒有實現的表達式在開發中或者要採用其他進行處理,下面我詳細的向大家介紹AgileEAS.NET所實現的那些表達式:
條件表達式
Linq to EAS.NET中實現了“=”、“>”、“<”、“>=”、“<=”、“!=”、“like ”匹配、In 查詢、Between 、以及And、Or組合。
排序表達式
Linq to EAS.NET中實現了Order by ,Order by Desc排序。
統計及分頁
Linq to EAS.NET也實現了First、Last、FirstOrDefault、LastOrDefault表達式。
Select New {}
Linq to EAS.NET也實現了select new {}表達式,這將能大大提高編程的方便性和更高的查詢性能,如下寫法:
其他表達式
Linq to EAS.NET實現了 Count統計以及基於統計的分頁支持Top、Take及Skip表達式。
下一步的計劃:
在接下來的Linq to EAS.NET版本中我們將陸續支持更表的表達式,在近期將會支持Sum、Average、Max、Min表達式,在下一步Orm支持關係之後將進一步支持join 、left join、right join表達式。
對於Group by 、Having表達式暫時還沒有考慮到支持。
如何實現Linq的:
Linq to EAS.NET的實現思想非常的簡單,即解析Linq表達式並轉換爲AgileEAS.NET的查詢表達式樹並由AgileEAS.NET平臺的Orm執行並返回結果。
本文中的小例子及其相關的對象定義文件、建表及數據創建腳本、源代碼文件,請大家從
這裏下載。
下載說明
如何聯繫
如果您在使用AgileEAS.NET開發平臺中有什麼問題,請使用如下幾種聯繫方式或者溝通方式。
1、官方網站:
2、AgileEAS.NET平臺交流羣:
AgileEAS.NET平臺交流羣:120661978(超級羣)[新建]
AgileEAS.NET平臺交流羣:125643764(高級羣)[新建]
AgileEAS.NET平臺交流羣:147168308(高級羣)[新建]
3、系統架構交流羣:
系統架構交流羣:9105332(高級羣)(已滿)
系統架構交流羣1:124825459(高級羣)(已滿)
系統架構交流羣2:49124441(高級羣)(已滿)
系統架構交流羣3:47025564(高級羣)(已滿)
鏈接