groupe LINQ par date lors de l'utilisation par des champs multiples groupes

voix
1

Depuis LINQ ne vous permet pas d'utiliser la méthode Date () dans une requête LINQ, je lis sur l' utilisation DbFunctions.TruncateTime, qui fonctionne très bien jusqu'à ce que vous essayez de l' utiliser à l' intérieur d' un type anonyme qui est ce que je dois faire pour groupe sur plusieurs champs. J'ai aussi essayé de créer une nouvelle datetime en utilisant uniquement la partie date de mon domaine , mais cela ne fonctionne pas non plus (encore une fois avec la même erreur).

Ma requête ressemble

kw = kw
    .GroupBy(x => new { DbFunctions.TruncateTime(g.SummaryHour), x.KeywordID })
    .SelectMany(x => x)
    .OrderByDescending(x => x.KeywordID);

J'ai essayé enchaînant le groupe par son ensemble comme groupby.groupby ... mais cela ne me donne pas le même résultat. De toute façon je peux y parvenir? Je suis fondamentalement essayer de filtrer la partie de ma date et groupe par d' autres domaines.

Créé 09/12/2013 à 18:46
utilisateur
Dans d'autres langues...                            


1 réponses

voix
7

Bien sûr, vous pouvez utiliser une méthode dans un type anonyme, mais vous devez fournir le nom de la propriété, parce que le compilateur n'a rien à dériver à partir de:

kw.GroupBy(x => new { 
                      Date = DbFunctions.TruncateTime(g.SummaryHour),
                      x.KeywordID
                    })
Créé 09/12/2013 à 19:14
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more