這禮拜六去參加了聖森公司所舉辦的C# LINQ課程,
LINQ全名為Language Integrated Query,
在.Net 3.5的時候(2008年)所提出的查詢方法,
是微軟提出的原創功能,語法類似SQL語言,便於在程式中做資料查詢,
像是XML、泛型結構、資料庫、Excel、CSV等等各種檔案和資料來源,
以往在查詢不同資料型別的時候,會有不同的查詢語法要記憶,
所以出錯的機會很高,因為無法預先識別和編譯,
所以微軟提出這種查詢語法,將資料加以物件和結構化,再去做查詢,
提升程式語法的一致性和日後的維護性。
IEnumerable與IQueryable差異比較,
IQueryable多了LINQ運算是的功能,其實就是LINQ to SQL。
匿名型別
不需要事先明確定義類型。 類型名稱會由編譯器產生,並且無法在原始程式碼層級使用
也可以搭配Lamda表示式來查詢,他也算是一種匿名型別
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資料搜尋,
建立對應的EventLog Model class
在Global.asax.cs檔案中
加入
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
可以去除掉XML標籤,並得到純JSON的回傳。