public override Task <List <T> > GetEntitiesAsync(GetOption <T> option = null) { GetOptionToDocumentQuery <T> documentQuery = option.ToDocumentQuery(); return(mongoDatabase.GetCollection <T>(this.tableName).Find(documentQuery.FilterDefinition) .Project(documentQuery.ProjectionDefinition) .Sort(documentQuery.SortDefinition) .Skip(documentQuery.PaginationDefinition.skip) .Limit(documentQuery.PaginationDefinition.limit).ToListAsync()); }
public override Task <T> GetEntityAsync(string entityId, GetOption <T> option = null) { option = option ?? new GetOption <T>(); option.SearchOption = new SearchOption <T>() { Expression = new PropertySearchExpression() { Operator = "=", Property = nameof(IEntity.Id), Value = entityId.ToString() } }; GetOptionToDocumentQuery <T> documentQuery = option.ToDocumentQuery(); return(mongoDatabase.GetCollection <T>(this.tableName).Find(documentQuery.FilterDefinition).Limit(1).Project(documentQuery.ProjectionDefinition).SingleOrDefaultAsync()); }