Linq вернуться первое свидание - PullRequest
1 голос
/ 21 декабря 2011

У меня есть запрос:

var q = db.tblArcadeGamePlays
    .Where(c => c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null)
    .GroupBy(r => new { r.ReferalID })
    .Select(g => new { Plays = g.Count(), URL = g.Key.ReferalID })
    ;       

tblArcadeGamePlays также имеет поле Date, в группе я хочу вернуть самую раннюю наблюдаемую дату, содержащуюся в группе.

Как бы я это сделал?

Ответы [ 3 ]

6 голосов
/ 21 декабря 2011
.Select(g => new {
       Plays = g.Count(), URL = g.Key.ReferalID,
       MinDate = g.Min(x => x.Date
});

вы могли бы также найти синтаксис LINQ здесь легче читать / поддерживать, но ... синтаксис расширения также будет работать. Но как LINQ:

var q = from c in db.tblArcadeGamePlays
        where c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null
        group c by c.ReferalID into g
        select new {
            Plays = g.Count(), URL = g.Key.ReferalID, MinDate = g.Min(x=>x.Date)
        };
1 голос
/ 21 декабря 2011
var q = db.tblArcadeGamePlays     .Where(c => c.GameID == GameID && c.ReferalID != 0 && c.ReferalID != null)     .GroupBy(r => new { r.ReferalID })     .Select(g => new { Plays = g.Count(), URL = g.Key.ReferalID , Date = g.Min(cc=>cc.DateField) })     ; 

Замените DateField вашим фактическим свойством

1 голос
/ 21 декабря 2011

это может сработать

var firstIndex = q.Min(c => c.Date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...