2017-05-29 65 views
0

我有一个要求,选择具有子对象卫生组织的ID被包含在一个int数组选择当儿童实体ID在int数组存在

父对象=经纪人 子对象=国家

所有的父对象

经纪人可以有许多国家

我想选择经纪人的名单谁拥有匹配的int数组传入

类似的东西国家

if (filter.Country.Any()) 
       q = q.Where(b => filter.Country.ToList().Contains(b.Countries.Select(c => c.Id).ToList())); 
在上面的代码 '过滤器'

是Model

'filter.Country' 被定义为这样的:

public int[] Country { get; set; } 

那么,我想说的是,如果filter.Country包含任何ID,只选择具有与输入ID匹配的国家/地区的经纪人

上述代码不起作用,因为它尝试将int与int数组匹配,但希望它解释了我想要的实现

+0

是否所有国家/地区ID都与您的经纪人匹配或只有一个? –

+0

只有一个,所以任何国家的任何经纪人 –

回答

0
context.Brokers.Where(b => b.Countries.Any(c => ids.Contains(c.Id))) 
+1

或多或少。在我的例子中没有'Ids'数组,但这是有效的: context.Brokers.Where(broker => broker.Countries.Any(country => filter.Country.Contains(country.Id))) –