我已经搜索过了,但是似乎仍然无法使它为我工作。我有一个与用户(他们的组织ID)相关联的ID数组。将它们放在int []中,如下所示:
int[] OrgIds = (from oh in this.Database.OrganizationsHierarchies join o in this.Database.Organizations on oh.OrganizationsId equals o.Id where (oh.Hierarchy.Contains(@OrgId)) || (oh.OrganizationsId == Id) select o.Id).ToArray();
那里的代码不是很重要,但是它表明我正在从Linq查询中获取一个整数数组。
但是,从此,我想运行另一个获取人员列表的Linq查询,该代码如下:
List<Personnel> query = (from p in this.Database.Personnels where (search the array) select p).ToList();
我想在where子句中添加仅选择数组中具有OrganizationId的用户的方法。因此,在SQL中,我会做类似“ where OrganizationId =‘12’或OrganizationId =‘13’或OrganizatonId =‘17’的事情。”
我可以在Linq / .NET中相当容易地做到这一点吗?
虽然这可能更适合联接,但是您可以使用以下命令:
List<Personnel> query = (from p in this.Database.Personnels where OrgIds.Contains(p.OrgID) select p).ToList();
这将转化为SQL之类的东西。
where OrgID in (1,2,...,n)