2015-04-14 2 views
1

je reçois une erreur et je ne sais pas comment le résoudre, voici mon code:Problèmes avec AnonymousType ASP.NET MVC

var respaldos = db.Respaldoes.Where(x => x.type == "Backup"); 

if (con_filtro_fecha) 
    respaldos = respaldos.Where(x => x.start_time >= _desde && x.start_time <= _hasta); 

if (con_agrupacion) 
{ 
    switch (agrupar) 
    { 
     case "dia": 
      respaldos = respaldos.GroupBy(x => new{ 
        x.start_time.Year, 
        x.start_time.Month, 
        x.start_time.Day 
       }) 
       .Select(x => new{ 
        anio = x.Key.Year, 
        mes = x.Key.Month, 
        dia = x.Key.Day, 
        bytes = x.Sum(y => y.bytes_processed) 
       }).AsEnumerable(); 
      break; 
     case "mes": 
      respaldos = respaldos.GroupBy(x => new{ 
        x.start_time.Year, 
        x.start_time.Month 
       }) 
       .Select(x => new{ 
        anio = x.Key.Year, 
        mes = x.Key.Month, 
        bytes = x.Sum(y => y.bytes_processed) 
       }).AsEnumerable(); 
      break; 
    } 
} 

Comment corriger l'erreur que je reçois dans « AsEnumerable() "? Ou si ce n'est pas possible, que puis-je faire?

Erreur:

No se puede convertir implícitamente el tipo System.Collections.Generic.IEnumerable AnonymousType#1 en System.Linq.IQueryable RespaldoServidores.Models.Respaldo . Ya existe una conversión explícita (compruebe si le falta una conversión)

+0

Quelle est la déclaration de la variable 'respaldos'? –

+0

var respaldos = db.Respaldoes.Where (x => x.type == "Sauvegarde"); –

Répondre

2

Lorsque vous appelez AsEnumerable vous avez 2 problèmes.

Tout d'abord, respaldos est à l'origine un IQueryable<T>, donc vous ne pouvez pas lui affecter Enumerable<T>.

Deuxièmement, les types d'éléments sont différents. Je ne suis pas sûr quel type d'élément contient respaldos, mais ce ne sera pas le même que le type anonyme de votre requête.