我正在使用Entity Framework,我有以下代码:
var query = this._dbContext.Set<Parent>()
.AsNoTracking()
.Where(p => p.IsActive.Value)
.Include(child=> p.Children)
as IQueryable<Parent>;
这会给我所有的孩子。此外,孩子们有一个名为VersionNumber的属性。我应该如何编辑上面的查询,因为它只返回一个子项,即最大值为VersionNumber的子项。
请注意,对于每个Parent的子项的每条记录,VersionNumber是一个INT递增1。 父子Child.VersionNumber 1 1 1 1 2 2 2 1 1 2 1 2
答案 0 :(得分:0)
您需要预测结果。
var query = this._dbContext.Set<Parent>()
.AsNoTracking()
.Where(p => p.IsActive.Value)
// not necessary since you're selecting children in your projection below .Include(child => p.Children)
.Select(p => new Parent
{
Children = p.Children.OrderByDescending(c=> c.VersionNumber).Take(1),
p.OtherProperty,
p.AnOtherProperty,
p.YouGetTheIdea // manual select the properties of parent you require
}); // Not necessary as IQueryable<Parent>