C# 是否有可能通过RIA服务获得类似0..1的关联数据?

C# 是否有可能通过RIA服务获得类似0..1的关联数据?,c#,wpf,entity-framework-4.1,wcf-ria-services,C#,Wpf,Entity Framework 4.1,Wcf Ria Services,我可以通过RIA服务获得1..0数据 var sFiltered = this.ObjectContext.Sequences.Include("Schedules").Include("Events") .Include("Events.EventFrames") .Include("Events.EventRules")

我可以通过RIA服务获得1..0数据

 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();
所以上面的代码非常有效

问题是我想从[ClientContentItemElements]通过ClientContentItemID[EventFramePlugins]获取数据

请看下图。但是我不想做的是使用来自WPF客户端的一个额外请求来获取这些数据。所以我们的想法是使用1个请求来获取我需要的所有数据


谢谢你

我认为下面的查询将返回所需的结果。它最后选择一个匿名类型(
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
            });  

我认为下面的查询将返回所需的结果。它最后选择一个匿名类型(
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
            });  

你好谢谢你的提示!但使用您的方法,我失去了.Include(“Events.EventRules”),并且没有您建议的“myValue”。我不能用它。无论如何谢谢你@德米特里博伊科:是的,你是对的。好奇地想看看是否有可能在一个db调用中完成它。如果你找到了一个解决方案,如果你能分享我会很感激的。。。我决定在RIA服务中创建一些视图类,并通过经典的LINQ方法填充它!谢谢你的提示!但使用您的方法,我失去了.Include(“Events.EventRules”),并且没有您建议的“myValue”。我不能用它。无论如何谢谢你@德米特里博伊科:是的,你是对的。好奇地想看看是否有可能在一个db调用中完成它。如果你找到了一个解决方案,如果你能分享我会很感激的。。。我决定在RIA服务中创建一些视图类,并通过经典的LINQ方法填充它。