Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# 使用lambda筛选实体集_C#_Lambda_Wcf Ria Services - Fatal编程技术网

C# 使用lambda筛选实体集

C# 使用lambda筛选实体集,c#,lambda,wcf-ria-services,C#,Lambda,Wcf Ria Services,所以我在服务器上有这个 public IQueryable<Pos>GetPos(int programID) { var entitySet = _posRepository.All().Where(x => x.ProgramID == programID).Include("RecPositions.Person"); return entitySet.Where(x => x.RecPositions.Any(rp =&g

所以我在服务器上有这个

public IQueryable<Pos>GetPos(int programID)
    {
        var entitySet = _posRepository.All().Where(x => x.ProgramID == programID).Include("RecPositions.Person");

        return entitySet.Where(x => x.RecPositions.Any(rp => rp.PosRank != 0));
    }
public IQueryableGetPos(int-programmaid)
{
var entitySet=_posRepository.All()。其中(x=>x.ProgramID==ProgramID)。包括(“RecPositions.Person”);
返回entitySet.Where(x=>x.RecPositions.Any(rp=>rp.PosRank!=0));
}

我有相似的/相同的吗?客户端上的代码。但我认为这应该在服务器上完成,这样我就不会带回数千条记录。我希望(rp=>rp.PosRank!=0)能省略任何有0的记录…但由于某些原因它不是。如果我遗漏了什么,有人能看一下并告诉我吗。同样,我希望所有0的PosRank记录都不包含在结果集中。

您的代码当前表示包含任何具有非零PosRank的RecPositions的实体

它不是过滤实体中返回的RecPositions,而是过滤它们的父类型(Pos)

如果您只想包括所有RecPositions具有非零PosRank的Pos实体,您只需要:

return entitySet.Where(x => x.RecPositions.All(rp => rp.PosRank != 0));
如果您确实需要重新定位值(而不是Pos值),您可能需要:

return entitySet.SelectMany(x => x.RecPositions)
                .Where(rp => rp.PosRank != 0));

@Jon…这方面还有一点问题..所以当我得到所有的职位和recPositions以及包括在内的人..然后过滤掉任何有recPosition.posRank的职位0..这似乎在做的是..例如,我有一个中心位置,我的RecPosition实体中有一个计数2。一个人的排名为1,另一个人的排名为0。该筛选器似乎同时删除了这两个人,因此RecPosition现在似乎为空。希望这有意义。@Jon。。经过一些工作,这正是我所需要的。我走了另一个方向,你把我带到了另一个方向。我基本上做了你留下的第二个例子。我最初需要对该职位进行筛选,但在那之后,我真的不再需要该实体,因此我执行了selectmany并重新编写了一些其他代码。在服务器上这样做要好得多,因为有可能有数千行,这样我们每个位置只带回大约10行…谢谢!