我尝试获取查询结果列表并返回方法值但得到错误。
无法找到类型或命名空间名称“T”(是吗? 缺少using指令或程序集引用?)
我该怎么做?
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;
}
}
答案 0 :(得分: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。