首页 > 解决方案 > 在实体框架中按一对多 FK 排序

问题描述

我有一个类,其中包含一个存储事件日期列表的列表,我需要查询事件列表并按日期对它们进行排序,如何在实体框架中实现这一点。

这是我的主要课程

public class UserEv
{
    public string title { get; set; }
    public virtual List<Dates> dates { get; set; }
}

我需要查询此类中可用的日期

public class Dates
{
    public DateTime start { get; set; }
    public DateTime end { get; set; }
}

我需要在开始日期之前订购从查询中获得的结果。我怎样才能在 EF 中实现这一点。这是我用来从数据库中获取数据的当前查询,我在订购部分遇到了麻烦。

db.UserEv.Where(l=> l.dates.Any(a => a.start>= (start)))
         .Where(l=> l.dates.Any(b => b.end<= (end)))

任何帮助都会很棒。

标签: c#entity-framework

解决方案


假设这有效:

db.UserEv.Where(l=> l.dates.Any(a => a.start>= (start)))
     .Where(l=> l.dates.Any(b => b.end<= (end)))

按最早开始日期排序:

.OrderBy(l => l.Dates.Min(d => d.start));

推荐阅读