SQL-запрос к linq to SQL-запрос - PullRequest
       14

SQL-запрос к linq to SQL-запрос

0 голосов
/ 27 февраля 2012

У меня следующий запрос в SQL:

SELECT TOP 1 *
FROM sessions
ORDER BY start_time

Как мне вместо этого кодировать его в LINQ-to-SQL

Ответы [ 3 ]

5 голосов
/ 27 февраля 2012

Используйте 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
}

You может использовать выражение запроса для первой части, но это кажется довольно бессмысленным - в конечном итоге оно будет на больше длинным, чем при использовании "точечной нотации", поэтому я бы придерживалсячто.

3 голосов
/ 27 февраля 2012
(from i in dc.sessions
orderby i.start_time).Take(1);

или

dc.sessions.OrderBy(x => x.start_time).Take(1);
1 голос
/ 27 февраля 2012

Вот пример :

NorthwindDataContext db = new NorthwindDataContext();

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

return shippers.First();

Однако использование синтаксиса, рекомендованного Джоном Скитом выше, вероятно, наиболее подходит для вашего простого варианта использования.

...