Silverlight + WCF RIA + как включить условный набор дочерних записей (не все, кроме набора) - PullRequest
0 голосов
/ 19 июля 2010

У меня проблема с загрузкой связанных данных через WCF RIA и Entity Framework - пожалуйста, помогите мне - я не знаю, как ее решить.

У меня есть Room <- RoomRecords (содержит поля startDate / endDate и ссылку на родительский номер), и мне нужно загрузить RoomRecords, где, например, дата начала> = 1.07.2010 и дата окончания <= 15.07.2010. Родительская комната также должна быть включена. Я использую атрибут [Включить] в свойстве Room плюс <a href="http://blogs.msdn.com/b/alexj/archive/2009/10/13/tip-37-how-to-do-a-conditional-include.aspx" rel="nofollow noreferrer"> Я использую этот подход - «Как сделать условное включение» - для извлечения связанных данных.

Проблема в том, что на стороне клиента я получаю Room со ВСЕМИ, связанными с roomRecords (например, где дата начала / окончания прошлого года - это не то, что мне нужно - там будет много записей!), Но мне нужно Получите Номера с RoomRecords ПРОСТО с начальной / конечной датой, которая соответствует упомянутому условию. Как это решить? Спасибо!

1 Ответ

1 голос
/ 19 июля 2010

Упс!

Похоже, я ошибся - все работает нормально и условная загрузка работает нормально ... Простите!

запрос:

        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;
...