[英]Having multiple get-methods with multiple query string parameters in ASP.NET Core Web Api
[英]Get ALL or SPECIFIC data from the DB using multiple query parameters (ASP.NET Core Web Api)
我正在研究 ASP.NET 核心 Web Api 我想創建一個從用戶那里獲取多個參數的方法,所有這些都是可選的,並返回過濾后的數據。
就像是:
public async Task<ReportEntity> GetReportByFilters(StatusEnum paramA, bool paramB, ReportStatusEnum paramC)
{
report = await _context.tbl_Reports.Include(x => x.User)
.Where(x => x.Status == paramA, x.IsDone == paramB, x.ReportStatus == paramC)
.ToListAsync();
return report;
}
這些參數可能是解析的,也可能不是,在這種情況下,應該刪除過濾器。 如果沒有參數,則應接收所有數據。 我怎樣才能做到這一點?
最簡單的方法是這樣的:
public async Task<ReportEntity> GetReportByFilters(StatusEnum? paramA, bool? paramB, ReportStatusEnum? paramC)
{
var query = _context.tbl_Reports.AsNoTracking();
if (paramA != null)
query = query.Where(x => x.Status == paramA.Value);
if (paramB != null)
query = query.Where(x => x.IsDone == paramB.Value);
if (paramC != null)
query = query.Where(x => x.ReportStatus == paramC.Value);
var report = await query.Include(x => x.User).ToListAsync();
return report;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.