什么是 SQL 相当于 LINQ .All()
What is SQL equivalent to LINQ .All()
这在 SQL 中会是什么样子(SQL 服务器,如果你想说的话)?
// where people is a list of Person objects with property Name
bool bobs = people.All(p => p.Name == "Bob");
你会检查是否有不符合条件的记录:
not exists(select * from Persons where not Name = 'Bob')
由于与 null
进行比较的规则在 C# 和 SQL 之间是不同的,如果字段允许空值,您将需要一个空值条件:
not exists(select * from Persons where Name <> 'Bob' or Name is null)
我不确定 Linq 究竟会创建什么查询,但 SQL 中的等效项是 ALL
运算符:
'Bob' = ALL (SELECT name FROM people)
这在 SQL 中会是什么样子(SQL 服务器,如果你想说的话)?
// where people is a list of Person objects with property Name
bool bobs = people.All(p => p.Name == "Bob");
你会检查是否有不符合条件的记录:
not exists(select * from Persons where not Name = 'Bob')
由于与 null
进行比较的规则在 C# 和 SQL 之间是不同的,如果字段允许空值,您将需要一个空值条件:
not exists(select * from Persons where Name <> 'Bob' or Name is null)
我不确定 Linq 究竟会创建什么查询,但 SQL 中的等效项是 ALL
运算符:
'Bob' = ALL (SELECT name FROM people)