GetAllIncключение Включить последнюю запись связанной таблицы - PullRequest
0 голосов
/ 09 января 2019
 var kitContents = await _kitItemRepository.GetAllIncluding(ki => ki.Campaign, ki => ki.Item, ki => ki.Comments.LastOrDefault()).Where(ki=>ki.KitId == input.kitId).ToListAsync();

Я ожидаю, что только последняя запись (если есть комментарии), но выдает ошибку.

System.InvalidOperationException: 'Лямбда-выражение свойства Include' ki => {ki.Comments => LastOrDefault ()} 'недопустимо. Выражение должно представлять доступ к свойству: 't => t.MyProperty'. Чтобы нацелить навигацию, объявленную на производные типы, укажите лямбда-параметр с явно заданным типом целевого типа, например, '(Производный d) => d.MyProperty'. Для получения дополнительной информации о включении связанных данных см. http://go.microsoft.com/fwlink/?LinkID=746393.'

Ответы [ 2 ]

0 голосов
/ 09 января 2019
    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();
0 голосов
/ 09 января 2019

вы не можете использовать LastOrDefault() таким образом. получить все комментарии и удалить все, кроме последнего.

...