微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用linq Group运算符展平查询结果的正确方法是什么

这是数据结构,我从NHibernate Query回来了

public Class PaperResult 
{
    public Guid SubjectId {get;set}

    public Guid StudentId {get;set}

    public string Name {get;set}

    public string Email {get;set}

    public int Marks {get;set}

}

我的疑问是

  1. var resultEntities = _repository.Query<PaperResult>().where(t => t.Id == testId)
  2. studentResults = resultEntities.GroupBy(x => x.StudentId)

返回,IQueryable,现在我把它投射到课堂上

public Class StudentResult 
{
    public Guid StudentId {get;set}

    public string Name {get;set}

    public string Email {get;set}

    public int Marks {get;set}

    public IEnumerable<PaperResult> PaperResults {get;set;}
}

我试图使用下面的linq来展平结果,但是Nhibernate抛出“方法或操作没有实现.”.

from paperResult in studentResults
let studentResult  = paperResult.First()
select new StudentResult()
{
    StudentId =studentResult.StudentId,Name =studentResult.Name,Email =studentResult.Email,Marks =studentResult.Marks,PaperResults =resultEntities.Where(x => x.StudentId ==studentResult.StudentId
                  select new PaperResult(){...}.ToList()
}

注意:代码一个骨架代码.

问候,

解决方法

您应该能够投射到一个非常类型的投影.

然后投影到您想要的类型:q.AsEnumerable(),选择(…)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐