Не удается использовать шаблон «выбрать после включения в репозиторий» ASP.NET Сердечник

#asp.net-core #asp.net-core-mvc

Вопрос:

Я новичок в ASP.NET Ядро, и я пытаюсь получить только имя пользователя от пользователя с помощью select, но я не могу.

Может быть, этот вопрос и плохой, но я начал всего несколько дней назад. Если вы можете помочь, пожалуйста, продолжайте и заранее спасибо

ошибка здесь:

 public async Task<IActionResult> GetAllOrders()
    {            
            var orders = await _unitOfWork.Orders.GetAll(o => o.IsReady == false,
                orderBy: item => item.OrderBy(x => x.OrderDate),
                include:i=>i.Include(x=>x.User).Select(x=>x.User.UserName));
            var results = _mapper.Map<IList<OrderDTO>>(orders);
            return Ok(results);                        
    }
 

функция в универсальном репозитории:

 public async Task<IList<T>> GetAll(Expression<Func<T, bool>> expression = null,
            Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null,
            Func<IQueryable<T>, IIncludableQueryable<T, object>> include = null)
        {
            IQueryable<T> query = _db;

            if (expression != null)
            {
                query = query.Where(expression);
            }

            if (include != null)
            {
                query = include(query);
            }

            if (orderBy != null)
            {
                query = orderBy(query);
            }
            return await query.AsNoTracking().ToListAsync();
        }
 

ошибка здесь

функция в универсальном репозитории

Комментарии:

1. Похоже, вам не хватает системы импорта. Линк ?

2. @Дуг, к сожалению, я его импортировал. это не причина

3. Не могли бы вы, пожалуйста, опубликовать реальный код вместо изображений?

4. @PeterBons Готово

5. @redwards510 Я думаю, ты можешь мне помочь!

Ответ №1:

Я думаю, что у вас не должно быть этого оператора Select, потому что он делает синтаксис включения недопустимым. Вы должны иметь возможность получить доступ к имени пользователя следующим образом:

 foreach(var order in orders)
{
    var userName = order.User.UserName;
}
 

Комментарии:

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