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

时间:2015-01-09 01:46:39

标签: c# asp.net database asp.net-mvc-4 mono

我正在尝试在我的网络服务器上运行一些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()时,如果我的数据库中没有匹配项,则返回“null”,而不是我期望的,这是一个大小为0的IEnumerable列表。为什么会这样? ?

如果有匹配项,那么它的行为符合预期。

现在,为了解决空错误,我包括检查查询是否为null,但它应该总是返回某种类型的列表,即使它是空的,对吗?

1 个答案:

答案 0 :(得分:2)

显然,Mono 3.10.0附带的WebMatrix.Data并不像它的Windows对应物那样,它返回" null"如果查询没有结果。

所以为了解决这个问题,我在Database.cs中添加了一行来返回一个空的List并重新编译了WebMatrix.Data.dll