我是比較新的波長/ LINQ的,但是,我想要從一個特定的日曆,其中的事件仍然在未來所有的事件......篩選數據
如果我使用:
EventCalendar eventCalendar;
eventCalendar = db.Events_Calendars.Find(id);
我可以通過查看當前的日期獲取所有事件和過濾器,但我不認爲這是最好的方法。
的模型如下:
[Table("Events_Calendars")]
public class EventCalendar
{
public int Id { get; set; }
public string Calendar { get; set; }
public virtual List<Event> Events { get; set; }
}
事件模型:
public class Event
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public int? Capacity { get; set; }
.
.
.
}
一個在這個問題上我的失敗嘗試的是:
eventCalendar = db.Events_Calendars.Where(x => x.Events.Any(y => y.End >= DateTime.Today));
但它給我「不能隱式轉換類型'System.Linq.IQueryable < ... Models.EventCalendar>'到'... Models.EventCalend ar'
編輯:添加聲明行... EventCalendar eventCalendar;
您的解釋和示例讓我更好地理解了該問題(感謝額外閱讀), 我仍然需要通過特定的日曆來限制它,並且只列出未來事件。我很難理解如何過濾虛擬事件,因爲它本質上是從第二個表中提取數據。 – thefid
更新:我通過將「&& x.Id == id」添加到where子句來解決單個日曆問題,但未來日期的篩選器仍然無效。 – thefid
@thefid將有關新錯誤或異常的信息放入當前問題中(如果有)。你確定'db.Events_Calendars'不是空的,你需要比較'y.End> = DateTime.Today',而是'y。開始> = DateTime.Today'? –