Mongo Driver Linq Request Failure Exception

I use:

  • Asp.net Core 1.1
  • Driver MongoDB 2.4.4

And I execute the following LINQ query:

        var collection = _db.GetCollection<TableA>("TableAs");
        var collectionTableB = _db.GetCollection<TableB>("TableBs");
        var collectionTableC = _db.GetCollection<TableCs>("TableCs");


        var query = from c in collection.AsQueryable()
                    join i in (from f in collectionTableB.AsQueryable()
                               join p in collectionTableC.AsQueryable() 
                                    on f.PcbaId equals p.PcbaId into i
                               from x in i.DefaultIfEmpty()
                               select new { f, x })
                  on c.AssemblyId equals i.f.AssemblyId into cap
                    from i in cap.DefaultIfEmpty()
                    select new ConfigurableItemDto {

                    };

When I do this, it throws the following exception:

"System.Collections.Generic.IEnumerable`1 [TableB]" "System.Linq.IQueryable`1 [TableB]" "System.Linq.IQueryable`1 [ < > f__AnonymousType2`2 [TableB, System.Collections.Generic.IEnumerable`1 [TableC]]] GroupJoin [Assembly, Pcba, String, < > f__AnonymousType2`2] (System.Linq.IQueryable`1 [TableB], System.Collections.Generic.IEnumerable`1 [TableC], System.Linq.Expressions.Expression`1 [System.Func`2 [TableB, System.String]], System.Linq.Expressions.Expression`1 [System.Func `2 [TableC, System.String]], System.Linq.Expressions.Expression`1 [System.Func`3 [TableB, System.Collections.Generic.IEnumerable`1 [TableC], < > f__AnonymousType2`2 [TableB, System.Collections.Generic.IEnumerable`1 [TableC]]]])"          : arg0

- ? , MongoDB?

+6
1

MongoDb GroupJoin, , , GroupJoin , , GroupJoin MongoCollection s:

var query = from a in collection.AsQueryable()
            join b in collectionTableB.AsQueryable()
                on a.AssemblyId equals b.AssemblyId into bj
            from b in bj.DefaultIfEmpty()
            join c in collectionTableC.AsQueryable() 
                on b.PcbaId equals c.PcbaId into cj
            from c in cj.DefaultIfEmpty()
            select new ConfigurableItemDto {
                 a.SomeAProperty,
                 b.SomeBProperty,
                 c.SomeCProperty,
            };

MongoDb, ( ). , .

+1

All Articles