【LINQ最佳實務講座】

悅知介紹頁


LINQ是.NET Framework 3.5絕對不容忽視的新成員,它將資料查詢技術提升至更高的層次。本書將帶領你以嶄新的眼光,學習如何使用LINQ存取資料庫與物件。
本書共分四大篇,涵蓋瞭解LINQ所需的知識與相關討論,且提供完整的LINQ技術全方位學習導引,從LINQ的核心精神、發展軌跡、類別庫的運用,直到各種異質資料來源的查詢維護操作,逐步探索LINQ的面貌。

LINQ全方位剖析
引領讀者探索LINQ技術的輪廓,從基礎概念進入LINQ實際的範例操作,完整說明C#語法新增功能與LINQ的關係,以及LINQ查詢運算式。

LINQ to Objects
LINQ的核心在於整合程式語言的查詢方法子句與標準資料查詢方法成員,這些成員的數量不多,只要掌握它們,便可輕易跨越LINQ門檻,將其運用於應用程式的開發。

LINQ to XML
XML已是被廣泛採用的標準文件格式,當今開發工具均提供XML完整支援。更進一步的,LINQ發展了一組專門用來對應XML文件的API-LINQ to XML,以統一的語法提供存取XML文件所需的功能,讓C#與VB.NET操作XML文件變得更簡單。

LINQ to ADO.NET
將分別從SQL與ADO.NET兩個方向來探討LINQ與關聯式資料庫查詢的整合應用,開發人員可根據需求,針對各種異質資料來源進行混合查詢等應用,以簡化資料存取功能的設計工作。

目錄

第1章 | LINQ概況
1-1 LINQ與IEnumerable
1-2 IEnumerable介面與Enumerable類別
1-3 查詢運算子與運算式
1-4 LINQ的幾個部分
1-5 LINQ與程式語言的整合
1-6 物件化的資料查詢模型
1-7 LINQ的另外一個重點-集合物件資料存取
第2章 | LINQ查詢與C# 3.0
2-1 列舉集合與泛型
2-2 IEnumerable與System.Linq命名空間
2-3 LINQ查詢運算式
2-4 C# 3.0新增功能
2-5 Lambda運算式
2-6 擴充方法
2-7 型別推論
2-8 物件初始化與匿名型別
第3章 | LINQ查詢運算式與Enumerable擴充方法 I
3-1 Enumerable擴充方法
3-2 投影作業
3-3 資料篩選運算
3-4 排序運算
3-5 群組與關聯
3-6 篩選檔案系統搜尋應用
第4章 | LINQ查詢運算式與Enumerable擴充方法 II
4-1 彙總運算
4-2 設定作業
4-3 產生作業
4-4 計量運算
4-5 分割運算
4-6 項目作業
4-7 DefaultIfEmpty
4-8 轉換運算
第5章 | LINQ to XML
5-1 關於LINQ to XML
5-2 LINQ to XML API架構
5-3 XML文件載入與輸出
5-4 XML元素操作
5-5 屬性
5-6 XML節點與LINQ查詢運算式
5-7 XML擴充方法
第6章 | LINQ to ADO.NET – LINQ to SQL篇
6-1 LINQ to SQL
6-2 關於實體類別
6-3 System.Data.Linq命名空間
6-4 資料查詢維護
6-5 實體類別與物件關聯設計師
6-6 LINQ to SQL與資料繫結
6-7 運用預存程序
6-8 關聯實體類別
6-9 LINQ to SQL與LINQ標準查詢運算式
6-10 XML與關聯式資料的整合運用
第7章 | LINQ to ADO.NET - LINQ to DataSet篇
7-1 LINQ to DataSet
7-2 DataRowExtensions與延伸方法
7-3 DataView與DataTable轉換
7-4 資料查詢

感謝【LINQ最佳實務講座】製作團隊


29 則留言:

topcat 提到...

上次與呂老師聊到透過自訂Function處理Where條件,受益非淺,強烈推薦這樣的好書
。小喵也應用這個方式寫了篇文章,提供大家參考(http://blog.blueshop.com.tw/topcat/archive/2008/02/22/54378.aspx)

康廷數位 提到...

LINQ 這門技術真的不是蓋的,近日會貼相關的文章上來,讓大家能夠快速的進入狀況。

topcat兄的Blog好物實在不少呀,小弟實在汗顏,只顧著宣傳書,哈哈。

Fish 提到...

康廷數位兄:
突然間想到
晚輩對資料庫程式設計這一塊
會選擇看許薰尹所寫的書
(從ADO.NET程式設計就開始是她的書迷)
不知道您所發的LINQ會不會與她撞書
如果真的要選擇買誰的書
真叫晚輩難以去割捨

康廷數位 提到...

Hi,Fish:【LINQ最佳實務講座】這本書是此次悅知文化同時一□氣推出的五本Visual Studio 2008系列書籍之一,而許薰尹的【ADO.NET 3.5精研講座】亦是其中一本,我專講LINQ,她的是專注在ADO.NET 3.5本質上面。

這是兩種完全不同的技術,LINQ 只是加強了ADO.NET的DataSet功能,讓它能支援LINQ查詢技術,其他還有XML與Object的應用是LINQ必須瞭解,而你也必須懂ADO.NET才有辦法玩LINQ to ADO.NET這一塊。

所以你必須先讀完【ADO.NET 3.5精研講座】,再學【LINQ最佳實務講座】,這兩本書的內容是延續下來的,不會衝突或是重複,【ADO.NET 3.5精研講座】頂多只會帶一下LINQ的部份,請放心,不會有取捨的問題。

如果怕太傷本,就去買許薰尹的,2/28 早點來報名就有我的免費書,這樣問題就解決了。XD

Fish 提到...

康廷數位兄:
感謝您詳細的回答
目前手上還有您的兩本著作還沒有看完
(AJAX+ASP與ASP.Netb商業資料庫..)
所以會先將這兩本K完才會繼續購買其他書藉
過年的壓歲錢用光了

只是一口氣出五本書的書名
好像在悅知的網站是看不到的
在那裡可以看到相關內容

康廷數位 提到...

「Visual Studio 2008 書系」這篇文章裏面的那五本就是了,點一下圖可以放大。

壓歲錢用光沒關係,2/28 那天早點來,有機會拿到啦。

悅知網站要等正式出版才會張貼出來,因為我是作者之一,又有自已的網站,為了多賣幾本,所以先偷跑宣傳一下,所以來這裏看到的是比出版社還快的一手資料哦。XD

老狗 提到...

昨天在天瓏買到, 寫得很不錯...
晚上快速看了三章:
發現一些筆誤 ?! :

P33,第1行 : ILookup -> Lookup

P22,第3行 : 讀者可以到(到)其中的...

P34,最後1行: Taiwnaf -> Taiwan

P37,倒數第3行: var 是一種隱含型別的(查詢)變數 -> 多出(查詢)兩字 ?!

P41, 第6,7行: 擴充方法 : 一種靜態方法, 允許以執行個體進行進行呼叫, 以擴充現有的(方法). -> 型別 ?!

P59, 第八行: 擴充方法 (Exten(n)sion Methods) -> 多了一個n

康廷數位 提到...

Hi,老狗,太強了,怎麼昨天就拿得到咧…
好像今才上架,我也還沒看到書
三章一個晚上就看完了…Orz
我要寫好久啊 
謝謝這麼細心 ~~
不過這個暱稱喊起來怪怪的XD
歡迎常來,祝學習愉快 ^^

匿名 提到...

P204頁
那個圖畫錯了吧 XNamespace與XDeclaration地方

康廷數位 提到...

的確標示有誤,謝謝指正…:D

匿名 提到...

請問P278的圖上的文字,是打錯字嗎?和上下文好像沒有什麼關係

康廷數位 提到...

這張圖表示其中取回了Book底下的子元素,說明內容文字正誤植了,應該是Book被移除了,謝謝。
這些內容我們會一一於下一刷時候修正,感謝你的指正 。

匿名 提到...

呂老師
在LINQ 一書中專案 P344 範例UORDesignerRel form1 所產生的 output 資料比數為何和由 SQL Server Managerment 中所產生的資料比數不相同 ?

ed

康廷數位 提到...

hi,你好:看不太懂你的問題:(

匿名 提到...

對不起,我再說清楚一些. LINQ 最佳實務講座 P347 所提到程式.
string str ="" ;
BookCatRelDataContext context = new BookCatRelDataContext() ;
var enumBook =
from bc in context.Category
select bc;
foreach (var b in enumBook)
{
str += "\n分類:"+b.CategoryName ;
foreach (var bfield in b.Book)
{
str += "\n * ISBN:" +
bfield.BookISBN +
"  書名:" + bfield.BookTitle +
"/" +bfield.BookAuthor ;
}
}
contentRichTextBox.Text = str;
所產生 table relation 筆數,為何和下列 SQL 方式寫法所產生的筆數有不同 ?

select c.categoryname, b.booktitle, b.bookauthor from
category c, Book b
where (c.categoryID = b.BookCategoryID)
Thanks,

ed

康廷數位 提到...

OK 我找時間試試看 ~~

匿名 提到...

LINQ to SQL 篇 我連不上資料庫耶

康廷數位 提到...

依照書上的步驟一步步作,看一下問題出在那一點,看看訊息是什麼,才有辦法看哦,或是煩請檢查一下電腦環境哦:)

匿名 提到...

高旭兄您好,
我的電腦改裝SQL2008開發版和SQL2008Express版,並移除了2005的版本,然後"LINQ最佳實務講座"第6章和第7章的所有使用到DBooks.mdf的範例都不能跑了,請問有何方法將該資料庫檔案升級? 我有嘗試將此mdf附加進SQL2008Express,然後改成2008格式,然後再卸離,但還是沒用!

謝謝您

康廷數位 提到...

Hi,SQL Server 2008,我都完全還沒碰哦,真的很抱歉,請問一下Google大神:D

Roy Hu 提到...

老師, 請問本書的勘誤表在哪個網站上有放呢, 請指導, 感謝!

康廷數位 提到...

Hi,Roy Hu :
這本書目前並沒有釋出勘誤表,有任何問題,請在此留言討論,我們會儘快回應。

匿名 提到...

希望能早日有勘誤表,謝謝.

馨琳 提到...

:::請問,在P375裡的範例裡,有一句語法
dlo.LoadWith(c => c.Books);

但為何我使用以下方式來撰寫
dlo.LoadWith((Category c) =>
{
return c.Books;
});

時會出現以下的錯誤訊息:
具有陳述式主體的 Lambda 運算式無法轉換為運算式樹狀架構

康廷數位文教網 提到...

hi,因為它要回傳的是分類下的書籍
你這樣作會道致整個取出 分類與書的階層式關聯資料,所以會導致如此的錯誤…

馨琳 提到...

:::請問假如不使用
dlo.LoadWith(c => c.Books);
這種撰寫方式的話,那該如何解決一錯誤訊息呢???

具有陳述式主體的 Lambda 運算式無法轉換為運算式樹狀架構

康廷數位文教網 提到...

會發生這種錯誤有可能是 return c.Books 與你所設計的函式回傳型別不同

因此請注意調整其中的回傳型別即可

不過這是 C# 程式語法的部份,可能你必須再翻一下 C# 的書參考一下

Good Luck :)

cnc 提到...

請問此書還買得到嗎?
感謝

康廷數位 提到...

不好意思,這本書已經絕版,無法購買囉