我正在努力解决以下问题.
public class Competition { public int Id { get; set; } public string Name { get; set; } public IList<ResultInfo> ResultInfos { get; set; } public IList<Event> ChildEvents { get; set; } } public class ResultInfo { public int Id { get; set;} public string ResultInfoName { get; set;} public int Season { get; set; } } public class Event { public int Id { get; set; } public string EventName { get; set; } public IList<ResultInfo> ResultInfos { get; set; } }
我正在尝试如下查询,试图从比赛和活动中获得结果信息的季节“2013”.如果有人知道,pleSAE建议.
if (year.HasValue) { model = model.Where(x => x. ?? }
解决方法
你可以做:
var competitions = new Competition(); // Populated competition class var results = (from c in competitions from e in c.ChildEvents from ri in e.ResultInfos where ri.Season == 2013).ToList();
目前还不清楚为什么你需要一个额外的地方,但你可以扩展它,并有另一个条款,如
where ri.Season == 2013 && EventName == "Event"
正如@ von.v指出的那样,您可以通过Competition类直接访问ResultInfos,因此您可以通过以下方式简化它:
var results = (from c in competitions from ri in c.ResultInfos where ri.Season == 2013).ToList();