Beispiel #1
0
        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());
        }
Beispiel #2
0
        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());
        }