.net core 带If条件的Lambda表达式

.net core 带If条件的Lambda表达式,.net-core,entity-framework-core,.net Core,Entity Framework Core,我正在使用Lambda表达式开发一个报告和数据查询 我有六个参数作为查询参数。例如姓名、年龄、eamil、DOB、职位和部门 我想使用Lambda表达式查询参数为空或null的表 我正在使用.net核心和实体框架核心 有什么方法可以实现这一点吗?我建议实现一个查询/过滤函数,该函数实现默认参数,以便在某些参数为空时,它们不会成为查询的一部分 例如: public List<Student> GetStudents(string name = null, int? age){ va

我正在使用Lambda表达式开发一个报告和数据查询

我有六个参数作为查询参数。例如姓名、年龄、eamil、DOB、职位和部门

我想使用Lambda表达式查询参数为空或null的表

我正在使用.net核心和实体框架核心


有什么方法可以实现这一点吗?

我建议实现一个查询/过滤函数,该函数实现默认参数,以便在某些参数为空时,它们不会成为查询的一部分

例如:

 public List<Student> GetStudents(string name = null, int? age){
 var students = context.Students;

 if (name != null) students = students.Where(p => p.Name == name );
 if (age != null) students = students.Where(p => p.Age == age);
  
 return students.ToList();
 } 
公共列表GetStudents(字符串名称=null,int?age){ var学生=上下文。学生; 如果(name!=null)students=students.Where(p=>p.name==name); 如果(age!=null)students=students.Where(p=>p.age==age); 返回学生; }
我建议实现一个查询/过滤功能,该功能实现默认参数,以便在某些参数为空时,它们不会成为查询的一部分

例如:

 public List<Student> GetStudents(string name = null, int? age){
 var students = context.Students;

 if (name != null) students = students.Where(p => p.Name == name );
 if (age != null) students = students.Where(p => p.Age == age);
  
 return students.ToList();
 } 
公共列表GetStudents(字符串名称=null,int?age){ var学生=上下文。学生; 如果(name!=null)students=students.Where(p=>p.name==name); 如果(age!=null)students=students.Where(p=>p.age==age); 返回学生; } 对其他不带引号的参数执行相同操作“(参数==null | | x.列==parameter)”

若参数为null,则跳过。否则,它将使用x.Column==参数

对其他不带引号的参数执行相同操作“(参数==null | | x.列==parameter)”


若参数为null,则跳过。否则,它将使用x.Column==参数。

这是否回答了您的问题?这回答了你的问题吗?