2011-12-15 67 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

相关问题