我有一个表,其中包含以下列:
| FruitID | UserID | FruitName | ....
我想创建一个返回布尔值的查询:如果用户的水果没有一个被称为某个名称,则返回true;如果该名称已经在表中,则返回false
这就是我所拥有的:
using (MyDC TheDC = new MyDC())
{
return TheDC.TheTable
.Where(l => l.UserID == TheUserID)
.Select(l => l.FruitName == TheFruitName ).Any();
}
我需要做些什么才能使此查询起作用?
2条答案
按热度按时间pgx2nnw81#
你可以使用
.Any
本身,我认为你的查询工作相反,你需要一个!
也在返回之前返回false,如果有任何。m1m5dgzv2#
不带参数的
Any
返回给定的序列中是否有任何元素,而不管元素是什么。为了使它像你期望的那样(看看你的select是否返回了任何true
s),你需要给它添加一个条件:当然,与其选择布尔值然后检查它们,你应该直接进行检查:
根据您的描述,这将返回与您想要的相反的结果:如果
true
不在表中,则返回true
。有两种写法是“NOT ANY TRUE”或“ALL FALSE”:NOT ANY TRUE(注意表达式开头的
!
):全假: