当前位置:编程学习 > asp >>

LINQ语句检查空对象的问题

今天在写博客的页面集功能,根据URL去寻找Page,LINQ语句从SitePage的GetModelList()集合中获取符合条件的page,如果查询不到则跳转到404页面。代码是这样的:

var page = (from p in optSitePage.GetModelList()             where p.VirtualUrlPath.ToLower() == requestTitle.ToLower()             select p).First();   if (null == page) {     context.Response.Redirect("/404.html");     return; }

我故意传了个不存在的URL,结果linq语句直接报错:System.InvalidOperationException: Sequence contains no elements。查了下MSDN发现用了First()的话,如果结果集中没有元素,它是不会返回null的。改成FirstOrDefault()就 好了。

?var page = (from p in optSitePage.GetModelList()             where p.VirtualUrlPath.ToLower() == requestTitle.ToLower()             select p).FirstOrDefault();

traceback http://www.wyjexplorer.cn/Home/View/D44F795B009E20FD.html

 

摘自  汪宇杰
补充:Web开发 , ASP.Net ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,