[英]How to query Entity Framework objects where select is a list
I am trying to do something simple, but I can't figure it out. 我正在尝试做一些简单的事情,但我无法弄清楚。 Using EF6, I have 2 tables which are associated by an intermediate associative table, giving a many-to-many relationship:
使用EF6,我有2个表,这些表由一个中间关联表关联,给出了多对多关系:
I want to query all users who belong to a list of families. 我想查询属于家庭列表的所有用户。 So I get an array of families:
所以我得到了很多家庭:
var db = new MyProjectEntities();
User user = GetUserById((int)HttpContext.Current.Session["CurrentUserId"]);
var families = db.Users.Where(u => u.UserId == user.UserId).First().Families.ToArray();
Then I want to query all users belonging to these families: 然后,我要查询属于这些家族的所有用户:
var users = db.Users.Where(u => families.Contains(u.Families));
But I get this error: 但是我得到这个错误:
Instance argument: cannot convert from 'Database.Family[]' to 'System.Linq.IQueryable>' 实例参数:无法从“ Database.Family []”转换为“ System.Linq.IQueryable>”
Thanks in advance. 提前致谢。
You can use Any method: 您可以使用任何方法:
var users = db.Users.Where(u => u.Families.Any(fam => families.Contains(fam))).AsEnumerable();
I think this is what you're searching for. 我认为这就是您要寻找的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.