как получить IEnumerable при использовании FindAsync - PullRequest
0 голосов
/ 30 октября 2019

как получить IEnumerable

в поисках аналога, который возвращает IEnumerable

public async Task<ActionResult<IEnumerable<EclSmsConfig>>> GetEclSmsConfig()
        {
            return await _context.EclSmsConfig.ToListAsync();
        }

как получить IEnumerable, используя приведенный ниже код в .net core 3.0?

public async Task<ActionResult<emp>> GetEclSmsConfig(int id)
        {
            var Emp = await _context.emp.FindAsync(id);

            if (Emp  == null)
            {
                return NotFound();
            }

            return Emp;
        }

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

Я думаю, что это будет так:

public async Task<ActionResult<IEnumerable<EclSmsConfig>>> GetEclSmsConfig(int id)
{
    var result = await _context.emp.Where(e => e.Id == id).ToListAsync();

    if(!result.Any())
    {
        return NotFound()
    }

    return result;
}

Если вы участвуете в разработке внешнего интерфейса, вы должны иметь рефакторинг для обновления внешнего кода для обработки с одной записью, а не требовать возврата-end api возвращает коллекцию, если вы уверены, что всегда есть только одна возвращенная запись.

0 голосов
/ 31 октября 2019

ниже - рабочий раствор

public ActionResult<IEnumerable<emp>> Getemp(int id)
{

    IQueryable<emp> filterdata;

    if (id >= 1)
    {
         filterdata = from s in _context.emp
                         where (s.JobId == id)
                         select s;
    }
    else
    {
         filterdata = from s in _context.emp
                         select s;


    };

    var output = filterdata.ToArray();


    if (output.Length < 1)
    {
        return NotFound();
    }
    return output;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...