Search code examples
c#linqentity-frameworkselectilist

linq query - get parent entity where at least one child entity is part of list


I'm trying to do the following:

class Account
{
public virtual Ilist<Manager> Managers{get;set;}
}
class Manager
{
public virtual Ilist<Account> Accounts{get;set;}
}

...
private void Filter()
{
// List of Accounts
// Each Account has one or more Managers
// Each Manager has one or more Accounts

Ilist<Manager> FilteredManagers = new List<Manager>();
FilteredManagers .Add(new Manager(1));
FilteredManagers .Add(new Manager(2));
etc.
//I tried something like
var _Accounts = from a in Accounts
                where FilteredManagers.Contains(a.Managers)
                select a
//but this didn't compile

}

I want to run a query over Accounts which returns all Accounts with one or more Managers which are also in FilteredManagers Quite a noobish approach i suppose but I'm pretty new to programming.


Solution

  • var _Accounts = from a in Accounts
                    where 
                         a.Managers.Any(p=>FilteredManagers.Contains(p)) // some of the managers in Filtered Managers
                    select a