У меня есть следующие классы, которые сохраняются через MongoDb:
public class TypeA
{
public string Name { get; set; }
public List<TypeB> Children { get; set; }
}
public class TypeB
{
public string Colour { get; set; }
}
И я объединяю две коллекции TypeA следующим образом:
IQueryable<TypeA> collection1 = GetCollection();
IQueryable<TypeA> collection2 = GetCollection();
var query = from a in collection1
join b in collection2
on a.Name equals b.Name
select new { a.Name };
var list = query.ToList();
Как я могу сделать подобное что-нибудь, но на дочерних коллекциях свойств для свойства Color?
Я пробовал что-то вроде следующего, но драйвер MongoDb Linq явно не любит операторы SelectMany в предложении соединения:
IQueryable<TypeA> collection1 = GetCollection();
IQueryable<TypeA> collection2 = GetCollection();
var query = from a in collection1.SelectMany(a => a.Children)
join b in collection2.SelectMany(b => b.Children)
on a.Colour equals b.Colour
select new { a.Colour };
var list = query.ToList();