gpt4 book ai didi

具有 "NOT IN"功能的 C# Predicate Builder

转载 作者:太空狗 更新时间:2023-10-29 21:36:01 26 4
gpt4 key购买 nike

使用 PredicateBuilder 如何获得类似于 SQL IN 或 NOT IN 查询的功能?

例如,我有一个 ID 列表,我想选择 ID 匹配或不匹配 ID 的所有人员。

人员匹配功能相当简单(尽管可能有更好的方法)

var predicate = PredicateBuilder.False<Person>()
foreach (int i in personIDs)
{
int temp = i;
predicate = predicate.Or(e=>e.PersonID == temp);
}
return persons.Where(predicate);

那么如何得到相反的结果呢?我想要 ID 不在 personIDs 列表中的所有人员。

最佳答案

De Morgan :

NOT (P OR Q) = (NOT P) AND (NOT Q)

要让您的代码生成 NOT IN 条件的等效项,请重写为

var predicate = PredicateBuilder.True<Person>()

predicate = predicate.And(e=>e.PersonID != temp);

关于具有 "NOT IN"功能的 C# Predicate Builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156561/

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