2010-07-19 24 views
0

我有通過WCF RIA和實體框架加載相關數據的問題 - 請幫助我 - 我不知道如何解決它。Silverlight + WCF RIA +如何包含一組有條件的子記錄(不是所有的都是集合)

我有房間< - 房間記錄(包含startDate/endDate字段和對父房間的引用),我必須在其中加載RoomRecords。開始日期> = 1.07.2010和結束日期< = 15.07.2010。家長室也應包括在內。我使用Room屬性上的[Include]屬性加上i'm using this approach - 'How to do a Conditional Include' - 檢索相關數據。

問題是,在客戶端我得到與所有roomRecords相關的房間(例如,開始/結束日期從過去一年 - 這不是我所需要的 - 會有很多記錄!),但我需要通過RoomRecords獲得房間JUST,並提供符合上述條件的開始/結束日期。有什麼辦法解決它?謝謝!

回答

1

Ups!

似乎我錯了 - 一切正常,條件加載工作正常......請原諒!

查詢:

 var res = from room in this.ObjectContext.Rooms 
        from rr in room.RoomRecords 
        where 
        (rr.StartDate >= startDate.Date && rr.StartDate < endDate) || 
        (rr.EndDate > startDate.Date && rr.EndDate < endDate) || 
        (rr.StartDate < startDate.Date && rr.EndDate >= endDate) 
        select new { 
         Room = rr.Room, 
         rRec = rr 
        }; 

     var ret = res.AsEnumerable().Select(d => d.Room); 

     var justRoomRecords = ret.SelectMany(r => r.RoomRecords).ToList(); // just to check 

     return ret; 
相關問題