.NET SQL 通过 Petapoco "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >="

.NET SQL via Petapoco "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >="

我发现这个错误很常见,但我没有设法为我的案例找到解决方案,或者我没有设法理解问题的确切原因。

我正在通过 PetaPoco ORM 从 .NET 存储库执行后续查询

var foundEntries = Database.Execute("SELECT COUNT(GroupName) 
                                     FROM Group 
                                     WHERE GroupName=@0 AND IsDeleted=0"
                                    , groupName);

结果得到:

子查询返回了 1 个以上的值。当子查询跟在 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。 声明已终止。

奇怪的是我在SQL服务器环境下执行,完全没有问题

欢迎任何帮助。

您应该使用 SingleOrDefault 而不是 Execute

var foundEntries = Database.SingleOrDefault<int>("SELECT COUNT(GroupName) 
                                     FROM Group 
                                     WHERE GroupName=@0 AND IsDeleted=0"
                                    , groupName);