2017-01-28 3 views
1

Я пытаюсь получить список результатов запроса и вернуть значение метода, но получить ошибку.Как получить тип группы по запросу?

Тип или пространство имен имя «T» не может быть найден (вы отсутствует с помощью директивы или ссылка на сборку?)

Как я могу это сделать?

public IEnumerable<T> GetCountSubjectCategories() 
{ 
    try 
    { 
     IEnumerable<T> countSubjectsList = (from blog in db.BlogTables 
              group blog by blog.CatId 
              into catgy 
              select new 
              { 
               Id = catgy.Key, 
               CountSubjects = catgy.Count()         }).ToList(); 
     return countSubjectsList; 
    } 
    catch (Exception e) 
    { 
     Log.AddErrorLog(e, AdakLog.Service.DataBase, "1", false, false, true); 
     return null; 
    } 
} 

ответ

1

Вы должны объявить класс

public class CategorySubjects 
{ 
    public int Id { get; set; } 
    public int Subjects { get; set; } 
} 

, а затем возвращают IEnumerable<CategorySubjects>.

public IEnumerable<CategorySubjects> GetCountSubjectCategories() 
{ 
    try 
    { 
     return (from blog in db.BlogTables 
       group blog by blog.CatId 
       into catgy 
       select new CategorySubjects 
       { 
        Id = catgy.Key, 
        CountSubjects = catgy.Count() 
       }; 
      return countSubjectsList; 
     } 
     catch (Exception e) 
     { 
      Log.AddErrorLog(e, AdakLog.Service.DataBase, "1", false, false, true); 
      return null; 
     } 
    } 
} 

Другим вариантом было бы создать Tuple<int,int> с двумя свойствами или struct. Использование T в вашем коде не имело смысла. Обычно мы используем T, когда мы должны определить общий метод или класс, который будет вызывать какое-то общее поведение. Если вы хотите начать чтение о дженериках, вы можете начать here.

+0

Большое спасибо ... – programmer138200

+0

Вас очень приветствует :) – Christos

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