#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. Я могу сопоставить его и использовать только имя пользователя (при сопоставлении), но в этом случае я получаю данные, которые мне не нужны.