Example #1
0
        public Join(IMongoQueryable <BsonDocument> source1, IMongoQueryable <BsonDocument> source2, string source1OnField, string source2OnField, BsonDocument filter, List <KeyValuePair <string, string> > source1Projection, List <KeyValuePair <string, string> > source2Projection)
        {
            this.source1Projection = source1Projection;
            this.source2Projection = source2Projection;

            QueryDocument filterExp = new QueryDocument(filter);



            Data = source1.AsQueryable().Join(source2.AsQueryable(), o => o[source1OnField], inner => inner[source2OnField], (A, B) => new { A, B })
                   .Where(_ => ((FilterDefinition <BsonDocument>)filterExp).Inject())
                   .AsEnumerable()
                   .Select(_ => Mapper(_.A, _.B)).ToList();
        }