Silverlight + WCF RIA +如何包含一组有条件的子记录(不是除了一组)

时间:2010-07-19 06:00:30

标签: c# silverlight entity-framework wcf-ria-services

我遇到通过WCF RIA和实体框架加载相关数据的问题 - 请帮助我 - 我不知道如何解决它。

我有Room< - RoomRecords(包含startDate / endDate字段和对父房间的引用),我必须加载RoomRecords,例如开始日期> = 1.07.2010和endDate< = 15.07.2010。父母房间也应包括在内。我正在使用Room属性加上i'm using this approach - 'How to do a Conditional Include'的[Include]属性来检索相关数据。

问题是,在客户端,我得到所有roomRecords相关的房间(例如,开始/结束日期是从过去的一年 - 这不是我需要的 - 会有很多记录!)但我需要获取带有RoomRecords的房间,其开始/结束日期与所述条件相符。解决方法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

盛衰!

好像我错了 - 一切正常,条件加载工作正常......原谅!

查询:

        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;