【问题标题】:How to get type of group by query?如何通过查询获取组类型?
【发布时间】:2017-01-28 09:49:41
【问题描述】:

我尝试获取查询结果列表并返回方法值但得到错误。

找不到类型或命名空间名称“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;
    }
}

【问题讨论】:

    标签: c# linq group-by


    【解决方案1】:

    你应该声明一个类

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

    然后返回IEnumerable&lt;CategorySubjects&gt;

    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&lt;int,int&gt;struct。在您的代码中使用T 没有意义。通常,当我们必须定义一个泛型方法或一个会暴露一些泛型行为的类时,我们使用T。如果你想开始阅读泛型,你可以开始here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2023-03-30
      • 2010-10-08
      • 2020-01-03
      • 2012-04-02
      • 2015-02-03
      • 1970-01-01
      相关资源
      最近更新 更多