小EF问题。 我在EF中映射了多对多关系。 X.Y 所以当我有一个X有一个属性X.Ys.实体框架代码优先 - 多对多过滤
现在我想要做的是使用LINQ查询得到一些X的,但我不希望有所有的Y的选择X的内部。 我想Y's过滤Y.RegistrationDate> Date.Today。
所以,当我有一个X,并通过.Y's,我只会得到未来的Y's。
UPDATE 这工作,导致S中有与它的关系只包含即将举行的活动不同微克的。 但不要告诉我这个不能简化??!
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();
UPDATE2
添加的图像显示,即使基本脉络操纵我仍然得到2个事件,事件的时候我拿1!只要你想它
嘿迈克,因为它是多对多的,没有做ToList()并且等待查询结束,会导致错误。这是因为多对多的循环引用。但我会尝试你的选择,看看这是否仍然有效。 – Depechie 2012-03-18 20:29:19
就像我想的那样,错误:“已经有一个与此命令关联的打开DataReader,它必须先关闭”仍然存在!这是y => y.Date ...部分,因为Y也有一个Y.Xs集合! – Depechie 2012-03-18 20:32:30
我认为这是一个连接字符串问题:请看这里http://social.msdn.microsoft.com/Forums/en-MY/adonetefx/thread/8cbe2049-53c9-4c02-b040-18ee30fd7800 – 2012-03-18 20:40:06