2012-02-27 202 views
-5

我在SQL以下查詢:SQL查詢的LINQ to SQL查詢

SELECT TOP 1 * 
FROM sessions 
ORDER BY start_time 

我應該如何在LINQ到SQL

+0

這是非常好的落後點,去 – MoShe 2012-02-27 19:20:22

+0

我認爲這是一些信息共享的地方.. – MoShe 2012-02-27 19:58:34

+0

這是,但它是合理的,期望你可能剛纔在這裏問這裏之前谷歌搜索這個非常基本的問題的答案。它已被答覆了一百萬次,在這裏(我確定)和其他地方。 – tomfanning 2012-02-27 20:34:33

回答

5

使用OrderBy進行排序,而First或可能FirstOrDefault相當於TOP 1

var session = db.Sessions.OrderBy(x => x.StartTime).FirstOrDefault(); 
if (session != null) 
{ 
    // Use the session 
} 
else 
{ 
    // There weren't any sessions 
} 

可能使用的第一部分查詢表達式,但它似乎很沒有意義 - 這將最終被比使用「點號」囉嗦,所以我堅持這一點。

3
(from i in dc.sessions 
orderby i.start_time).Take(1); 

dc.sessions.OrderBy(x => x.start_time).Take(1); 
而不是代碼時
1

Here's an example

NorthwindDataContext db = new NorthwindDataContext(); 

var shippers = from shipper in db.Shippers 
         orderby shipper.CompanyName 
         select shipper; 

return shippers.First(); 

但是,採用喬恩斯基特推薦上面的語法可能是最適合您簡單的用例。

+1

當你想要的是'OrderBy'調用時,爲什麼還要使用查詢表達式?使用查詢表達式時,他們*清晰*。 – 2012-02-27 19:08:08

+0

OP要求LINQ表達式 - 這就是我交付的。我個人同意你的看法,更喜歡並且經常使用lambda語法。 – tomfanning 2012-02-27 19:19:50

+0

OP寫道:「我應該如何編寫它寫入linq」 - 這並不一定意味着查詢表達式。使用點符號仍然使用LINQ。 – 2012-02-27 19:20:40