Linq按2列(创建和修改)排序,以较大者为准

时间:2015-05-10 18:12:01

标签: c# linq mongodb

我有{{1>}名称查询,需要返回按上次修改日期排序的结果列表。

该实体有两列名为CreatedOn和ModifiedOn。 CreatedOn不可为空,并在创建新实体时设置。仅在修改实体时才设置另一列ModifiedOn。

此处的上次修改日期表示按CreatedOn或ModifiedOn排序,以较大者为准。

以下代码不适用于MongoDB C#驱动程序。

IQueryable

抛出query = query.OrderBy(e => e.ModifiedOn == null ? e.CreatedOn : e.ModifiedOn);

  

"无法确定表达式的序列化信息:。"

我知道它抛出NotSupportedException的原因。我正在寻找一种解决方案来对实体进行排序。还有其他方法可以达到预期的效果吗?

解决方案应该在IQueryable上工作,而不是在内存中的IEnumerable上工作。实体可以变化很大。

1 个答案:

答案 0 :(得分:0)

在c#8和postgresql中,此工作:

query = query.OrderBy(e => e.LastModified ?? e.Created);