2011-12-15 40 views
2

我可以通過RIA Services獲得1..0的數據。RIA Services有可能獲得像0..1數據關聯嗎?

var sFiltered = this.ObjectContext.Sequences.Include("Schedules").Include("Events") 
            .Include("Events.EventFrames") 
            .Include("Events.EventRules") 
            .Include("Events.EventFrames.EventFramePlugins") 
            .Include("Events.EventFrames.EventFramePlugins.EventFramePluginParameters") 
            .Include("Events.EventFrames.EventFramePlugins.EventFramePluginContentItems") 
            .Where(s => s.ID == schedule.SequenceID).FirstOrDefault(); 

所以上面的代碼的偉大工程。

的問題是,我想通過ClientContentItemID [EventFramePlugins]從[ClientContentItemElements]

請看看下面的圖像數據。但我不喜歡做的是使用WPF客戶端的額外請求來獲取這些數據。所以這個想法是使用1請求來獲取我需要的所有數據。

DB Model

謝謝!

回答

0

我認爲以下查詢將返回所需的結果。它終於選擇了一個匿名類型(ClientContentItemElementId,Sequence),您可以更改它以獲得相應的結果。但是,我沒有測試生成的sql來查看這種方法是否可以接受。

sequences.Include.....Where(s => s.ID == schedule.SequenceID).SelectMany(s => s.Events).SelectMany(e => e.EventFrames).SelectMany(ef => ef.EventFramePlugins) 
    .SelectMany(efp => efp.EventFramePluginContents).SelectMany(efpc => efpc.ClientContentItems). 
    SelectMany(cci => cci.ClientContentItemElemts).Where(ccie => ccie.ClientContentItemElementId == myValue). 
    Select(
     ccie => 
     new 
      { 
       ccie, 
       ccie.ClientContentItem.EventFramePluginContentItem.EventFramePlugin.EventFrame.Event. 
      Sequence 
      }); 
+0

嗨!謝謝你的線索!但是用你的方法,我會鬆動。包括(「Events.EventRules」),我沒有「myValue」,正如你所建議的。我無法使用它。不管怎樣,謝謝你! – 2011-12-15 18:15:23

相關問題