使用EFCore过滤ASp.net Core中的数据



我确实有一个使用asp.net核心、SQL Server和EFCore5的web api项目。我有一个患者的实体模型,它有一个诊断Id列,我想根据该列Id(GUID(筛选患者,我如何实现此场景:1-当客户端没有发送任何diagnosticId(null(时,我想返回所有患者。2-当客户发送特定的诊断ID时,我需要有具有该特定诊断ID的患者。

基本上,null必须翻译All,其余翻译为已发送的Id。我可以用像这样的If and Else来实现

If(diagnosticId == null ) 
{ 
//Query to return all the patients 
} else {
//Query to return patients with specific Id 
}

但我认为应该有一个更好、更专业的方法来做到这一点。有人能帮我吗?

LINQ是可组合的。您可以这样做以避免重复基本查询:

var query = context.Patients;
if (diagnosticId != null)
{
query = query.Where(p => p.DiagnosticId == diagnosticId);
}

最新更新