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
TAG:LINQ