查询IEnumerable列表并从两个对象中查询

时间:2016-11-21 16:54:25

标签: c# linq

如何返回具有某些类型的组管理员的用户/人员列表

模型

Person
    public class Person : Base
    {
        public DateTime DOB { get; set; }
        public virtual ICollection<Name> PreferredName { get; set; }
        public virtual ICollection<Prefix> PrefixID { get; set; }
        public virtual ICollection<Gender> GenderID { get; set; }
        public virtual ICollection<Ethnicity> EthnicityID { get; set; }
        public virtual ICollection<Email> EmailID { get; set; }
        public virtual ICollection<Roles> RoleID { get; set; }
}

Roles
public class Roles: Base
{
    {
     public string desc {get;set;}
    }
 }

这是我正在制作的方法。

Method
public IEnumerable<Person> GetPersonWithGroup(IEnumerable<Roles> r)
{
   return context.Person.Where(x => r.Contains(x.RoleID));
}

1 个答案:

答案 0 :(得分:0)

您正在将每个角色对象与RoleID进行比较...您需要将ID与ID进行比较。我会建议这样的事情:

return context.Person.Where(x => r.Select(y => y.RoleID).Contains(x.RoleID));