Based on the following classes.
public class User
{
public int Id { get; set; }
public List<TenantUser> TenantUsers { get; set; }
}
public class TenantUsers
{
public int UserId { get; set; }
public User User { get; set; }
public int TenantId { get; set; }
public Tenant Tenant { get; set; }
}
public class Tenant
{
public int Id { get; set; }
public string Name { get; set; }
public List<TenantUser> TenantUsers { get; set; }
}
I am trying to generate a linq query that will return an Lookup<int,Tenant>()
The int
being the userId from TenantUsers.
My attempt so far:
var userIds = new int[] {1, 2,3,5};
var tenantUsers = new List<TenantsUsers>();
var tenants =
tenantUsers
.Where(m => userIds.Contains(m.UserId))
.ToLookup(x=>x.UserId);
Above is how far I got. This returns ILookup<int,TenantUsers>
I am looking for ILookup<int,Tenant>();
You have to select Tenant
from the result like this.
var userIds = new int[] {1, 2,3,5};
var tenantUsers = new List<TenantsUsers>();
var tenants =
tenantUsers
.Where(m => userIds.Contains(m.UserId))
.ToLookup(x => x.UserId, y => y.Tenant);