使用linq组运算符使查询结果平坦化的正确方法是什么?
本文关键字:方法 是什么 linq 运算符 结果 查询 使用 | 更新日期: 2023-09-27 18:14:28
这是数据结构,我从NHibernate查询返回
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}
}
和我的查询是
- var resultenties = _repository. querypaperresult>()。where(t => t. id == testd)
- studentResults = resultenties。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 () .Select(…)