我正在崩溃,看起来很简单但却无法正常工作。这是我的情景。
我有一个tEvents的对象结构,它包含一系列音乐会等事件的属性。 tEvents又包含一个tEventOptions实体集,其中包括EventDate,Canceled等属性。我想使用tEventOptions的属性查询tEvents列表,例如按日期过滤。
我的网页使用日历对象来显示活动日期。所以我试图找到列表中返回的任何tEvent是否与我在Calendar控件中呈现的day元素的日期相匹配(在此剪辑'data'中是List并且是db查询的结果):< / p>
protected void CalendarDayRender(object sender, DayRenderEventArgs e){
//need to see if we can find a way to find an event option that might be contained within the events datasource
var r =( from x in data where x.tEventOptions.Select(y=>y.EventDate.Date.Equals(e.Day.Date)).Any() select x).Any();
if (r)
{
e.Cell.Font.Bold = true;
}
}
如果有任何tEvent具有任何与DayRenderEventArgs Date匹配的EventDate的tEventOption,则r应该为true。 'EventDate'是一个日期时间字段,因此我只将其中的日期部分与'e.Day.Date'进行比较。我的想法是在tEventOptions上使用'Any()'查询给出了一个关于是否有任何元素符合条件的布尔值。
除了r之外,无论接收到什么数据,我的查询结果var始终为true。我已经使用tEventOption的其他属性尝试了子查询,并且每次都获得相同的“true”结果。我知道数据不能反映这个结果,所以我的查询结构显然有问题,但对于我的生活,我找不到解决问题的方法。
之前我一直在努力解决这类问题,所以非常感谢任何帮助。
答案 0 :(得分:0)
试试这个
e.Cell.Font.Bold = data
.Where(x => x.tEventOptions
.Any(o => o.EventDate.Date == e.Day.Date));