簡體   English   中英

使用多個查詢參數從數據庫中獲取所有或特定數據(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM