2010-07-19 3 views
0

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

У меня есть номер < - RoomRecords (содержит поля startDate/endDate и ссылки на родительскую комнату), и мне приходится загружать RoomRecords, где, например, дата начала> = 1.07.2010 и endDate < = 15.07.2010. Родительский номер также должен быть включен. Я использую атрибут [Include] для свойства Room плюс i'm using this approach - 'How to do a Conditional Include' - для получения связанных данных.

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

ответ

1

Ups!

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

запрос:

 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; 

 Смежные вопросы

  • Нет связанных вопросов^_^