我有以下 POCO:
public class Event
{
public int Id { get; set; }
public bool UnderProcessing { get; set; }
public DateTime CreatedDate { get; set; }
public int? ParentId { get; set; }
public Event Parent { get; set; }
}
我需要选择所有符合以下条件的事件:
context.Events
.Include(ev => ev.Parent)
.Where(ev => (ev.ParentId != null && ev.Parent.UnderProcessing) || ev.ParentId == null)
.OrderByDescending(ev => ev.CreatedDate)
.FirstOrDefault()
数据库中的数据为:
Event: id = 1, UnderProcessing = true, CreatedDate = 15.03.2020, ParentId = null
Event: id = 2, UnderProcessing = false, CreatedDate = 16.03.2020, ParentId = 1
但是不是返回 id = 2 的事件,因为它是在 desc 中排序后的第一行,它总是给我 id = 1 的事件。这怎么可能,似乎 EF Core 跳过了自引用导航属性的条件?
提前感谢您的帮助