2011-01-14 104 views
2

如果我是寫如下...LINQ to SQL中獲取記錄有最大的日期值

var latest = _records.OrderByDescending(x => x.Date).First(); 

這是訂購一套完整的?或者Linq很聰明,知道你只是在尋找最大值?有沒有更有效的方式來編寫上述內容?

+0

爲什麼不打開sql分析器,創建一個新的跟蹤並跟蹤sql命令。您將能夠看到正在調用的sql語句或語句。我自己不知道答案,所以這是我會採取的方法。 – Andrew 2011-01-14 12:40:26

回答

2

是,LINQ to SQL的是足夠聰明,做在數據庫方面的工作。您的代碼段會導致像SELECT TOP (1) ... ORDER BY ...這樣的SQL。

(這是假設在你的代碼片段_records表示System.Data.Linq.Table<T>什麼IQueryable等)

至於寫查詢的最佳方式,你可能會考慮FirstOrDefault(),如果有可能你的表不會包含任何記錄,在這種情況下First()將引發異常。