我确实有一个使用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);
}