【发布时间】:2021-01-05 15:22:44
【问题描述】:
我有以下课程:
public class MyClass
{
public DateTime? Date1 { get; set; }
public DateTime? Date2 { get; set; }
}
此类中的对象总是有一个日期为空,另一个有一个值,例如:
var obj1 = new MyClass
{
Date1 = new DateTime(2020/12/12),
Date2 = null
};
var obj2 = new MyClass
{
Date1 = null,
Date2 = new DateTime(2020/12/8)
};
var obj3 = new MyClass
{
Date1 = new DateTime(2020/12/24)
Date2 = null
};
有没有一种方法可以通过这两个属性从我的数据库上下文中获取有序数据? (可能在执行查询时合并两列,但我不希望输出具有合并列)
在这种情况下,查询应该给出以下结果: [obj2, obj1, obj3]
【问题讨论】:
-
不能
.OrderBy(x => x.Date2 ?? x.Date1)吗?我觉得 EF 应该可以翻译。从我正在阅读的内容来看,EF 可以处理空合并运算符。 -
Null coalesce not working in LINQ query 和 Null coalescing operator not working in Entity Framework 6 说空合并运算符在 EF 中不起作用 - 但这些都已经很老了。如果
??不起作用,.OrderBy(x => x.Date1.HasValue ? x.Date1.Value : x.Date2.Value)大概应该。
标签: c# .net entity-framework linq sql-order-by