【发布时间】:2012-04-03 07:00:40
【问题描述】:
EF 小问题。 我在 EF 中映射了多对多关系。 X..Y 因此,当我有一个 X 时,就有一个属性 X.Ys。
现在我想做的是使用 Linq 查询来获取多个 X,但我不想将所有 Y 都包含在选定的 X 中。 我希望在 Y.RegistrationDate > Date.Today 上过滤 Y。
所以当我有一个 X 并遍历 .Y 时,我只会得到未来的 Y。
更新 这有效,导致 S 具有不同的 ug,它的关系仅包含即将发生的事件。 但不要告诉我这不能简化??!!
var t = (from ug in uof.Ugs.All().ToList()
from upcomingEvent in ug.Events
where upcomingEvent.Date >= DateTime.Today
select new
{
ug,
upcomingEvent
}).ToList();
var s = (from ug in t.Select(x => x.ug).Distinct()
select new UG
{
Id = ug.Id,
Name = ug.Name,
Description = ug.Description,
WebSite = ug.WebSite,
Events = ug.Events.Where(x => x.Date >= DateTime.Today).ToList()
}).ToList();
更新2
添加的图像显示即使使用基本的上下文操作,我仍然会收到 2 个事件,当我收到 1 个事件时!
【问题讨论】:
标签: entity-framework many-to-many