我正在尝试将以下SQL查询转换为相应的IQueryable
:
select *
from invoiceNum
where IsActive = '1'
and RoleCode in ('R0090', 'R0003', 'R0084', 'R0069', 'R0006', 'R0054')
order by UserName
到目前为止,我已经提出了以下建议:
from u in this.Users
where (u.IsActive == true)
&& u.RoleCode == "R0003"
orderby u.UserName
但是现在我停留在如何转换WHERE
子句的其余部分上。我如何转换一个SQL查询,该查询作为其WHERE
子句的一部分,必须满足IQueryable
的多个条件?
答案 0 :(得分:2)
将Contains
用于IN
注意:我不确定您的实体名称是否正确,但是我想您会明白的
var roleCodes = new List<string>{"R0090","R0003","R0084","R0069","R0006","R0054"};
var users = Users.Where(x => x.IsActive && roleCodes.Contain(x.RoleCode))
.OrderBy(x => x.UserName)
.ToList();
// or
var user = from u in Users
where u.IsActive && roleCodes.Contains(u.RoleCode)
orderby u.UserName
select u;
Enumerable.Contains Method (IEnumerable, TSource)
通过使用以下命令确定序列是否包含指定的元素 默认的相等比较器。