【发布时间】:2015-05-10 18:12:01
【问题描述】:
我有一个名为 query 的IQueryable,需要返回按最后修改日期排序的结果列表。
实体有两列,分别称为 CreatedOn 和 ModifiedOn。 CreatedOn 不可为空,并在创建新实体时设置。另一列 ModifiedOn 仅在实体已被修改时设置。
此处的上次修改日期是指按 CreatedOn 或 ModifiedOn 中较大的一个排序。
以下代码不适用于 MongoDB C# 驱动程序。
query = query.OrderBy(e => e.ModifiedOn == null ? e.CreatedOn : e.ModifiedOn);
它会抛出一个NotSupportedException
“无法确定表达式的序列化信息:。”
我知道它为什么会抛出 NotSupportedException。我正在寻找对实体进行排序的解决方案。有没有其他方法可以达到预期的效果?
解决方案应该在 IQueryable 上运行,而不是在内存中的 IEnumerable 上运行。实体的数量可能很大。
【问题讨论】:
-
一旦有了list ion memory就做会不会有问题?
-
@PaoloCosta:列表非常大,我无法在内存中进行排序。