我有{{1>}名称查询,需要返回按上次修改日期排序的结果列表。
该实体有两列名为CreatedOn和ModifiedOn。 CreatedOn不可为空,并在创建新实体时设置。仅在修改实体时才设置另一列ModifiedOn。
此处的上次修改日期表示按CreatedOn或ModifiedOn排序,以较大者为准。
以下代码不适用于MongoDB C#驱动程序。
IQueryable
抛出query = query.OrderBy(e => e.ModifiedOn == null ? e.CreatedOn : e.ModifiedOn);
"无法确定表达式的序列化信息:。"
我知道它抛出NotSupportedException的原因。我正在寻找一种解决方案来对实体进行排序。还有其他方法可以达到预期的效果吗?
解决方案应该在IQueryable上工作,而不是在内存中的IEnumerable上工作。实体可以变化很大。
答案 0 :(得分:0)
在c#8和postgresql中,此工作:
query = query.OrderBy(e => e.LastModified ?? e.Created);