in

Darkthread

黑暗執行緒
All Tags » Tips » Linq (RSS)

Browse by Tags

  • 關於DataContext Attach()的眉眉角角

    上回提到 LINQ to SQL兩段式更新 時,經網友提醒有Attach()這個好東西,今天試了一下,結果發現它並不是我所原本想像的好東西,用起來得費一些手腳。 MVP Rick Strahl 對這個議題有兩篇文章( 1 , 2 )做了深入探討,因此細節我就不再贅述,但簡單歸納一下我的整理: Table(TEntity).Attach()有三個Overloading: 若只使用Attach(entity),不會產生任何SQL的更新動作。 使用Attach(entity, asModified),當設為true,但entity沒有Timestamp欄位時,會得到 An entity can only...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-24-2010
  • LINQ to SQL-當心CHAR(1)欄位比對條件寫法的效能差異

    今天意外發現,LINQ to SQL在轉譯CHAR(1)欄位比對時,可能因寫法不同而產生極無效率的SQL指令! 當資料表的欄位為CHAR(1)時,在DataContext裡產生的 對應物件型別 是char,而我們直覺上可能寫成CharCol == 'A'的比對條件。但今天發現一件可怕的事... CharCol == 'A'的寫法會被轉換成極無效率的WHERE UNICODE(CharCol) = 65 對SQL查詢效能略有研究的人都知道,Func(SomeCol) = SomeValue的寫法會迫使SQL Server把每一列的資料都挖出來運算後再比對,無法善用Index做有效率的搜索...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 03-25-2010
  • LINQ to SQL,說好的更新呢?

    自從學會 LINQ to SQL一行資料庫更新法 ,它便成為我專案裡常用的技巧。對於彈性要求較高、嚴謹性要求較低的複雜資料,我還喜歡借重SQL 2005起新增的XML資料型別作為儲存欄位。透過 LINQ to SQL對應 ,Xml欄位會變成System.Xml.Linq.XElement Class,XElement在建立與操作上文件又比.NET 2.0時代XmlDocument、XmlElement的做法便捷許多。 例如: 我手上有一個簡單的XmlStore資料表。 CREATE TABLE [dbo].[XmlStore]( [DocId] [varchar](16) NOT NULL, ...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-19-2009
  • 在ASP.NET中觀察LINQ to SQL所產生的T-SQL語法

    接連在好幾個小專案裡用了LINQ to SQL,慢慢掌握要領, 煎、煮、炒、炸 查詢、新增、修改、刪除,各種 料理 操作都已能手到擒來,就愈發感受到它的便利性。 說穿了,LINQ to SQL只不過是ORM的一種具體實踐,並無深奧學問,之所以用來得心應手、讓人驚豔,不外乎是在與Visual Studio 2008整合深度上佔了優勢。以一個開發者的角度而言,我不在乎這對其他解決方案是否公允? 也不關心這類綁標圖利是否會有爭議? 給我方便的開發工具,其餘免談。 過去曾用ADO/ADO.NET開發過很長一段時間,在效能議題上下過一些功夫。切換到LINQ to SQL後,完全不沾SqlConnection...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-12-2009
第1頁,共1頁 (4個項目)
Powered by Community Server (Non-Commercial Edition), by Telligent Systems