var kitContents = await _kitItemRepository.GetAllIncluding(ki => ki.Campaign, ki => ki.Item, ki => ki.Comments.LastOrDefault()).Where(ki=>ki.KitId == input.kitId).ToListAsync();
我希望只有最后一条记录(给有评论),但是它会引发错误。
System.InvalidOperationException:“包含属性lambda表达式'ki => {ki.Comments => LastOrDefault()}”无效。该表达式应表示属性访问:“ t => t.MyProperty”。要定位在派生类型上声明的导航,请指定目标类型的显式键入的lambda参数,例如'(派生d)=> d.MyProperty'。有关包含相关数据的更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=746393。'
答案 0 :(得分:1)
您不能像这样使用LastOrDefault()
。获取所有评论并删除除最后一条以外的所有评论。
答案 1 :(得分:-1)
var lastComment = _kitItemRepository.GetAll().LastOrDefault(ki=>ki.KitId == input.kitId).Comments;
var kitContents = await _kitItemRepository.GetAll()
.Select(ki => new
{
Campaign = ki.Campaign,
Item = ki.Item,
Comments = lastComment
})
.ToListAsync();