gpt4 book ai didi

c# - 使用 lambda 过滤实体集

转载 作者:行者123 更新时间:2023-11-30 22:40:58 25 4
gpt4 key购买 nike

所以我在服务器上有这个

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));
}

我有相似/相同?客户端上的代码。但认为这应该在服务器上完成,所以我不会带回数千条记录。我期待 (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));

如果您真的想要 RecPosition 值(而不是 Pos 值),您可能需要:

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

关于c# - 使用 lambda 过滤实体集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com