我有一个IQueryable
个Employee
个对象集合,其中包含FirstName
,LastName
,Department
。我传递了一个由逗号分隔的LastName
字符串。我想使用where
子句来过滤LastName
选为"Sharma,Gupta"
的数据。有人可以帮助我吗?
员工类
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Department { get; set; }
public string EmpID { get; set; }
}
public IQueryable<Employee> GetEmpData(String filterExpression)
{
IQueryable<Employee> data = GetEmployeeData();
data = from da in data
where (da.LastName == "Sharma")
select da;
return data;
}
在上面的方法中,我可以查询单个值。 filterExpression
包含以逗号分隔的LastName
列表。有人可以指导我如何在filterExpression
条款中使用where
吗?
答案 0 :(得分:2)
拆分字符串并使用.Contains
:
names = filterExpression.Split(",");
IQueryable<Employee> data = GetEmployeeData();
data = from da in data
where names.Contains(da.LastName)
select da;
当你返回整个对象并且不使用方法语法只展示它的一部分时可能更具可读性:
return GetEmployeeData().Where(item => names.Contains(item.LastName));
答案 1 :(得分:0)
如果您的filterExpression是一个字符串,名称以逗号分隔,那么您需要更改查询以检查姓氏列表中的姓氏是否在filterExpression中,如下所示:
cmd.CommandType = CommandType.StoredProcedure;