为什么 Database.Query() return 为空时为空?
Why does Database.Query() return null, when empty?
我正在尝试在我的网络服务器上运行一些 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){
//
}
当 db.Query() 运行时,如果我的数据库中没有匹配项,它 returns "null",而不是我所期望的,这是一个大小为 0 的 IEnumerable 列表。为什么会这样?
如果有匹配项,则其行为符合预期。
现在,为了绕过它的空错误,我包括一个检查查询是否为空,但它应该总是 return 某种列表,即使它是空的,对吧?
显然,Mono 3.10.0 附带的 WebMatrix.Data 与它的 Windows 对应物并不完全相同,其中 returns "null" 如果查询没有结果。
所以为了解决这个问题,我在 Database.cs 中添加了一行到 return 一个空列表并重新编译了 WebMatrix.Data.dll
我正在尝试在我的网络服务器上运行一些 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){
//
}
当 db.Query() 运行时,如果我的数据库中没有匹配项,它 returns "null",而不是我所期望的,这是一个大小为 0 的 IEnumerable 列表。为什么会这样?
如果有匹配项,则其行为符合预期。
现在,为了绕过它的空错误,我包括一个检查查询是否为空,但它应该总是 return 某种列表,即使它是空的,对吧?
显然,Mono 3.10.0 附带的 WebMatrix.Data 与它的 Windows 对应物并不完全相同,其中 returns "null" 如果查询没有结果。
所以为了解决这个问题,我在 Database.cs 中添加了一行到 return 一个空列表并重新编译了 WebMatrix.Data.dll