我正在开发一个使用EF 6的MVC 5应用程序。我想查询我的数据库并将值存储在一个变量中,并且如果根据给定条件存在null应执行另一个查询以返回值。在我的方法中,我有以下几点:D1作为一个参数,它有当前的日期。EF6查询之间的空(空合并运算符)
int otherYear = D1.Year + 1;
lastNo = (db.ABC.ToList().LastOrDefault(x => x.D1.Value.Month <= 6 && x.D1.Value.Year == otherYear).S1) ?? (db.ABC.ToList().LastOrDefault(x => x.D1.Value.Month > 6 && x.D1.Value.Year == D1.Year).S1);
查阅之前??
操作者执行第一查询,但对条件中指定的系统投对象引用的错误,并且以后操作者??
不执行第二查询时为空。我该如何解决它?
我知道它可以通过做一个if-else条件来解决,在这个条件下我应该首先检查是否有使用.Any()
函数的数据。但在这种情况下,我必须查询我的数据库至少2次。一旦在.Any()
中检查数据的可用性,其次检索数据。但是我有一个庞大的数据库,我不想进行额外的查询。
问候
'系统会因巫对象对象reference'的错误? –