我是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
,那么该属性不会被存储在文档中的值填充。
过去两天我一直在努力解决这个问题,但找不到任何答案。你能给我一些帮助吗?
提前致谢!