小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