1

我今天写的代码有问题。我想从数据库中选择一些行并按其中一列对它们进行分组。这是我的代码:

public class Classes
{
    public IQueryable<ClassData> HomeWorkList { get; set; }
}
public class ClassData
{
    public string Name { get; set; }
    public string English { get; set; }
}

var classesCustomViews = new Classes { 
    HomeWorkList = _repositoryClasses.GetRecords()
        .GroupBy(s => new { s.Name, s.English })
        .Select(s => new ClassData 
            { 
                English = s.Key.English, 
                Name = s.Key.Name 
             })
    };    
return PartialView(classesCustomViews);

这是我得到的错误:

System.Data.SqlClient.SqlException:列名“英文”无效。列名“English”无效。列名“English”无效。

4

1 回答 1

0

由于您没有撤回除密钥以外的任何聚合信息,因此您应该能够通过仅使用 Distinct 来完成它而无需分组,假设您正在使用 IQueryable 堆栈到数据库:

var classesCustomViews = new Classes { 
    HomeWorkList = _repositoryClasses.GetRecords()
        .Select(s => new ClassData 
            { 
                English = s.English, 
                Name = s.Name 
             })
        .Distinct()
    };  

如果您仍然收到错误,我会检查您的映射和表以确保表列名称没有更改。

于 2012-09-06T15:43:09.630 回答