为什么 Database.Query() 在为空时返回 null

本文关键字:返回 null Database Query 为什么 | 更新日期: 2023-09-27 18:36:46

我正在尝试在我的网络服务器上运行一些 ASP.NET 代码,该服务器安装了Mono 3.10.0和 ASP.NET 版本:4.0.30319.17020。

有问题的代码是这样的:

var db = Database.Open("myMySQLdatabase");
var q1 = db.Query(@"SELECT id FROM ph_conditions WHERE conditionName = '"+newCondName+"'");
if(q1==null || q1.Count() == 0){
    //
}

当数据库。运行 Query(),如果我的数据库中没有匹配项,它将返回"null",而不是我所期望的,这是一个大小为 0 的 IEnumerable 列表。为什么会这样呢?

如果有匹配项,则其行为符合预期。

现在,为了解决空错误,我包含一个检查以查看查询是否为空,但它应该始终返回某种列表,即使它是空的,对吧?

为什么 Database.Query() 在为空时返回 null

显然,Mono 3.10.0附带的WebMatrix.Data与Windows版本不完全相同,如果查询没有结果,则返回"null"。

因此,为了解决这个问题,我在数据库中添加了一行.cs以返回一个空的列表并重新编译了WebMatrix.Data.dll