在EF查询中,我想将实体分组为2列。然后包括分组列的实体实例
以下是通用存储库。我已经删除了一些简洁的代码
public class MyGenericRepository
{
public IQueryable<TEntity> GetQuery<TEntity>() where TEntity : class
{
return _dbContext.Set<TEntity>();
}
}
下面我按PackageDetail
和TemplateID
列对DocumentID
实体进行分组。分组后,我只对第一个(组密钥)实体感兴趣。我还想包括密钥实体的Template
和Document
子实体
IEnumerable<int> ids= GetIDs();
var result = await _repository.GetQuery<PackageDetail>()
.Include(x => x.Template)
.Include(x => x.Document)
.Where(x => ids.Contains(x.ID))
.GroupBy(x => new { x.TemplateID, x.DocumentID })
.Select(x => x.FirstOrDefault())
.ToListAsync();
上面的代码正确地进行分组并产生正确的结果。但结果PackageDetails
不包括Template
或Document
个孩子。