从DocumentDB查询实体会返回不完整的元素

时间:2017-01-11 01:36:05

标签: c# .net azure-cosmosdb

我是Microsoft DocumentDB的新手,我需要对它运行一些查询。

我将这种类型的对象存储在一个集合中:

public class GroupedSales
{
        [JsonProperty(PropertyName = "id")]
        public Guid Id { get; set; }
        public long Site { get; set; }
        public DateTime Date { get; set; }
        public int Hour { get; set; }
        public int Week { get; set; }
        public int GradeNumber { get; set; }
        public int Transactions { get; set; }
        public double TotalVolume { get; set; }
        public double TotalMoney { get; set; }
}

检索运行方法的元素,该方法接收封装在类中的以下过滤器:

public enum GroupingBy
{
        Hour,
        Day,
        Week,
        Month
};

public class SaleQueryFilter
{
        public List<int> Grades { get; set; }
        public List<long> Sites { get; set; }
        public GroupingBy GroupingBy { get; set; }
        public DateTime From { get; set; }
        public DateTime To { get; set; }
}

最后,查询如下:

private List<GroupedSales> GetRawData(SaleQueryFilter filter)
{
    return Client.CreateDocumentQuery<GroupedSales>(UriFactory.CreateDocumentCollectionUri(DatabaseId, DocumentCollectionId))
                 .Where(x => x.Date >= filter.From.Date
                             && x.Date <= filter.To.Date
                             && filter.Sites.Contains(x.Site)
                             && filter.Grades.Contains(x.GradeNumber)).ToList();
}

问题是如果我在Week子句中没有包含属性Where,那么该属性不会被存储在文档中的值填充。

过去两天我一直在努力解决这个问题,但找不到任何答案。你能给我一些帮助吗?

提前致谢!

0 个答案:

没有答案