Ric*_*nks 6 c# linq linq-to-entities
我有一个linq语句,它根据表单中的用户输入搜索许多字段.只需要1个表单字段,因此我需要处理空字符串值.什么是解决这个问题的最好方法.我应该检查字符串的长度,然后使相关的变量为空,然后在我的linq语句中检查这个,或者我可以在我的linq语句中执行某些操作.我的方法如下: -
public IEnumerable<Job> GetJobs(string jobNumber, string jobName, string projectDirectorName, string projectManagerName, string groupName) {
return this._context.Jobs.Where(
j => j.JobNumber.Contains(jobNumber) ||
j.JobName.Contains(jobName) ||
j.ProjectDirectorFullName.Contains(projectDirectorName) ||
j.GroupName.Contains(groupName));
}
Run Code Online (Sandbox Code Playgroud)
你可以用这个:
public IEnumerable<Job> GetJobs(string jobNumber, string jobName, string projectDirectorName, string projectManagerName, string groupName) {
IQueryable<Job> query = this._context.Jobs;
if (!String.IsNullOrEmpty(jobNumber))
query = query.Where(j => j.JobNumber.Contains(jobNumber));
if (!String.IsNullOrEmpty(jobname))
query = query.Where(j => j.JobName.Contains(jobName));
// etc.
return query;
}
Run Code Online (Sandbox Code Playgroud)
如果这将查询数据库,那么只有在迭代此方法的结果时才会查询该数据库,而不是每个".Where".
| 归档时间: |
|
| 查看次数: |
5693 次 |
| 最近记录: |