Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 RIA服务和lambda连接出现问题_C# 4.0_Silverlight 4.0_Entity Framework 4_Wcf Ria Services - Fatal编程技术网

C# 4.0 RIA服务和lambda连接出现问题

C# 4.0 RIA服务和lambda连接出现问题,c#-4.0,silverlight-4.0,entity-framework-4,wcf-ria-services,C# 4.0,Silverlight 4.0,Entity Framework 4,Wcf Ria Services,注:在下面的评论中,这已被回答为重复 我很难让RIA服务返回我需要的数据,而不是超过我需要的数据。我有一个包含许多子对象的父对象(项目)。一个是组件(每个项目一个组件)。另一个是ProjectParticipant,它需要根据ParticipantControl进行限制,我还需要获取人员信息(与ProjectParticipant相关) 以下是我之前尝试过的一些代码: public IQueryable<IMSModel.Project> GetProjectHierarchy(St

注:在下面的评论中,这已被回答为重复

我很难让RIA服务返回我需要的数据,而不是超过我需要的数据。我有一个包含许多子对象的父对象(项目)。一个是组件(每个项目一个组件)。另一个是ProjectParticipant,它需要根据ParticipantControl进行限制,我还需要获取人员信息(与ProjectParticipant相关)

以下是我之前尝试过的一些代码:

public IQueryable<IMSModel.Project> GetProjectHierarchy(String id)
    {

        return this.ObjectContext.Projects
                .Include("Component")
                .Include("ProjectParticipants")
                .Include("ProjectParticipants.Person")
                .Where(p => p.Program.ProgramType.lookupName == "EVDBE" &&
                    p.ProjectOrgs.Any(po => po.orgId == id) &&
                    p.ProjectParticipants.Any(pp => (pp.postId == id)) &&
                    p.ProjectParticipants.Any(pp => pp.PersonStatus.lookupName == "A") &&
                    p.ProjectParticipants.Any(pp => pp.ParticipantRole.participantInd == "Y"))
                .OrderBy(p => new { p.fiscalYear, p.title })
                .OrderByDescending(p => p.fiscalYear);


    }
公共IQueryable GetProjectHierarchy(字符串id) { 返回this.ObjectContext.Projects .包括(“组成部分”) .包括(“项目参与者”) .包括(“项目参与者.个人”) .Where(p=>p.Program.ProgramType.lookupName==“EVDBE”&& p、 ProjectOrgs.Any(po=>po.orgId==id)&& p、 ProjectParticipants.Any(pp=>(pp.postId==id))&& p、 ProjectParticipants.Any(pp=>pp.PersonStatus.lookupName==“A”)&& p、 ProjectParticipants.Any(pp=>pp.participantControl.participantId==“Y”)) .OrderBy(p=>new{p.fiscalYear,p.title}) .OrderByDescending(p=>p.fiscalYear); } 这并不太糟糕,但我最终得到了我不想要的ProjectParticipant对象。我真正想做的是将ProjectParticipant对象限制为那些具有participantControl.participantId==“Y”的对象

我尝试了另一种可能的语法,如下所示:

public IQueryable<IMSModel.Project> GetProjectHierarchy(String id)
    {

        return this.ObjectContext.Projects
            .Include("Component")
            .Join(this.ObjectContext.ProjectParticipants
                .Include("ProjectParticipants.Person")
                .Where(
                    pp => pp.ParticipantRole.participantInd == "Y" &&
                    pp.postId == id &&
                    pp.PersonStatus.lookupName == "A"
            )

            , p => p.id
            , pp => pp.projectId
            , (p, pp) => p )
            .Where(p => p.Program.ProgramType.lookupName == "EVDBE" 
                && p.ProjectOrgs.Any(po => po.orgId == id));

    }
公共IQueryable GetProjectHierarchy(字符串id) { 返回this.ObjectContext.Projects .包括(“组成部分”) .Join(this.ObjectContext.ProjectParticipants .包括(“项目参与者.个人”) .在哪里( pp=>pp.ParticipantControl.ParticipantId==“Y”&& pp.postId==id&& pp.PersonStatus.lookupName==“A” ) ,p=>p.id ,pp=>pp.projectd ,(p,pp)=>p) .Where(p=>p.Program.ProgramType.lookupName==“EVDBE” &&p.ProjectOrgs.Any(po=>po.orgId==id)); } 我想这会让我得到更接近我想要的东西。唯一的问题是,我没有在我的分层树视图中得到任何东西。返回了一些内容,因为为每条记录创建了空白位置,但我的绑定没有显示任何信息。第一个示例的绑定确实显示数据,而第二个示例的绑定(更有限的结果集,因为我没有使用Any())不显示数据

我已经用我的头撞击这个有一段时间了,无法解决。任何帮助都会很好。

这是一个重复的问题(至少根本原因是,您可以在链接中找到答案):