LINQ查询不到结果返回null吗?
LInq如果查询不到结果返回什么啊?返回null吗?
下面是我的部分代码:
[HttpPost]
public ActionResult Save2(CourseOrder input)
{
var re = from s in _db.CourseOrder where (input.UseTime == s.UseTime) && (input.Roomno == s.Roomno) select s;
if (re == null)
{
CourseOrder cou = new CourseOrder();
cou.UseTime = input.UseTime;
cou.Roomno = input.Roomno;
cou.Cname = input.Cname;
cou.Classname = input.Classname;
cou.Tname = input.Tname;
_db.CourseOrder.Add(cou);
_db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View("Room");
}
input是从前台输入页面返回来的一个类,我想从已经存在源数据的_db.CourseOrder里找到和input.UseTime和input.Roomno都相同的一条数据,如果查询不到,那么re的值是什么啊?我的判断语句怎么总是执行不对啊?我想根据re的值来执行后面的判断语句!谢谢
------解决方案--------------------re 只是一个运算器,它不是运算的结果。如果你把它应用到例如 .ToList() 、.Any() 、 .Count() 或者 foreach 等之中,那么 re 的表达式才被(延迟计算)。
因此 re 不可能是 null,永远不可能是 null。因为它只是一个运算器,而不是结果。
要想计算结果,需要写
if (!re.Any())
{
....