如何在Linq查询的OrderBy()中放入$ cond?

时间:2019-08-19 15:25:05

标签: c# mongodb linq sorting

我最近在C#中使用MongoDB启动了一个项目。我开始学习有关它的基础知识,但今天我遇到了一个似乎无法解决的问题。我在使用Linq的收藏中有一个OrderBy()方法。我试图使用$ cond聚合函数基于IF语句对集合进行排序。但是我得到一个错误,说: $ sort中仅允许使用字段

我基本上已经尝试了所有可以找到的东西。现在的解决方案是将IQueryable变成一个列表,然后对列表进行排序。但是我想通过服务器订购它以节省性能。

现在,我致电查询并尝试按我之前所说的进行排序。 这是给出错误的代码。

var query = collection.AsQueryable().Where(x => x.ReportId == 1).OrderBy(x => x.Origin == 0 ? "Test 1" : "Test 2" );
foreach(var item in query){
    Console.WriteLine(item.Name);
}

x重新组合了以下类

        public ObjectId _id { get; set; }
        public int ReportId { get; set; }
        public int RecId { get; set; }
        public int Origin { get; set; }
        public string Name { get; set; }

每当我尝试遍历它时,都会出现错误:$ sort中仅允许使用字段

我基本上想执行根据IF内部结果排序的查询。 现在,在尝试执行查询时会卡住。

0 个答案:

没有答案