C# 泛型(Generics)和 LINQ 教學課程

這禮拜六去參加了聖森公司所舉辦的C# LINQ課程,

LINQ全名為Language Integrated Query,

在.Net 3.5的時候(2008年)所提出的查詢方法,

是微軟提出的原創功能,語法類似SQL語言,便於在程式中做資料查詢,

像是XML、泛型結構、資料庫、Excel、CSV等等各種檔案和資料來源,

以往在查詢不同資料型別的時候,會有不同的查詢語法要記憶,

所以出錯的機會很高,因為無法預先識別和編譯,

所以微軟提出這種查詢語法,將資料加以物件和結構化,再去做查詢,

提升程式語法的一致性和日後的維護性。

 

IEnumerable與IQueryable差異比較,

IQueryable多了LINQ運算是的功能,其實就是LINQ to SQL。

 

匿名型別

不需要事先明確定義類型。 類型名稱會由編譯器產生,並且無法在原始程式碼層級使用

%e6%93%b7%e5%8f%96

也可以搭配Lamda表示式來查詢,他也算是一種匿名型別

222

Restful API

REST概念來自於一篇博論文,將網頁應用程式視為資源,

使用HTTP中的GET、POST、PUT、DELETE來定義基本的CRUD,

使用ASP.net Web API來實作Restful API個概念,

結合WCF和.NET MVC的優勢,但更加輕量化,

預設支援XML和JSON兩種媒體。

 

OData (open data protocol)

微軟以WCF Data Serviece來實現(與WCF無直接關係)

同樣使用GET、PUT、POST、DELETE

 

實作一個Webapi 並使用LINQ 對EventLog資料搜尋,

1

建立對應的EventLog Model class

2

在Global.asax.cs檔案中

4

加入

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

可以去除掉XML標籤,並得到純JSON的回傳。

3