2015-04-14 4 views
1

Я получаю сообщение об ошибке, и я не знаю, как это исправить, это мой код:Проблемы с 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; 
    } 
} 

Как исправить ошибку, которую я получаю в «AsEnumerable() «? Или, если это невозможно, что я могу сделать?

Ошибка:

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

Что такое объявление переменной 'respaldos'? –

+0

var respaldos = db.Respaldoes.Where (x => x.type == "Резервное копирование"); –

ответ

2

При вызове AsEnumerable у вас есть 2 проблемы.

Во-первых, respaldos изначально IQueryable<T>, поэтому вы не можете назначить ему Enumerable<T>.

Во-вторых, типы элементов различны. Я не уверен, что тип элемента respaldos содержит, но он не будет таким же, как анонимный тип из вашего запроса.

Смежные вопросы