0

我有以下 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 跳过了自引用导航属性的条件?
提前感谢您的帮助

4

0 回答 0