Sql Linq多对多
谁能帮我解决这个问题 用户有一个属性列表,属性有一个用户列表 我首先进行查询,以获取具有特定CompanyId的所有属性。这将生成一个新的列表,我们称之为MyProperties 我需要找到所有在MyProperties列表中拥有物业的租户。 出于其他原因,我无法访问“PropertiesUsers”联接表 对不起,如果看起来我还没想清楚的话,我整天都在忙这个 您可以使用来展平层次结构:Sql Linq多对多,sql,linq,Sql,Linq,谁能帮我解决这个问题 用户有一个属性列表,属性有一个用户列表 我首先进行查询,以获取具有特定CompanyId的所有属性。这将生成一个新的列表,我们称之为MyProperties 我需要找到所有在MyProperties列表中拥有物业的租户。 出于其他原因,我无法访问“PropertiesUsers”联接表 对不起,如果看起来我还没想清楚的话,我整天都在忙这个 您可以使用来展平层次结构: var myProperties = dbContext.Properties.Where(property
var myProperties = dbContext.Properties.Where(property => property.CompanyId = companyId);
var tenants = myProperties.SelectMany(property => property.Tenants);
使用
相交
:
var myPropertyIds=MyProperties.Select(p=>p.PropertyId.ToArray();
var result=Users.Where(u=>myPropertyIds.Intersect(
u、 Properties.Select(p=>p.PropertyId))
.Any());
如果您确定两个列表中的属性都是您可以使用的相同实例
var result=Users.Where(u=>MyProperties.Intersect(
u、 属性)
.Any());
我整天都在忙着加入和拦截-谢谢