简体   繁体   English

如何查询选择为列表的实体框架对象

[英]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个表,这些表由一个中间关联表关联,给出了多对多关系:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM