Если метод принимает ArticleStatus
вместо articleRequest
, он не выйдет из строя, т.е. вы никогда не получите InvalidCastException
во время выполнения, если ArticleStatus
не имеет значения nullable (ArticleStatus?
) или не имеет другогобазовый тип, чем int
(который является базовым типом по умолчанию для перечислений):
public async Task<IEnumerable<articles>> GetArticlesByStatus(ArticleStatus status)
{
var query = await _context.article.AsNoTracking()
.Where(x => x.ArticleStatusId == (int)status).ToListAsync();
}
Я предположил, что ArticleStatus
является enum
.
Если вы сохранитеПараметр articleRequest
и articleRequest
являются обнуляемым ссылочным типом. Прежде чем пытаться получить доступ к его свойству Status
, проверьте его null
:
Where(x => request == null || x.ArticleStatusId == (int)request.Status)
Остерегайтесь того, что ORM, такие как Entity Framework, могут неуметь переводить свои предикаты в допустимый SQL.