使用linq / entity,MVC2时出现奇怪的超时

时间:2011-08-11 03:01:53

标签: linq asp.net-mvc-2 entity

我只是随机开始解决这个问题,之前它一直很好,直到今晚。我不想触及超时的东西,我相信它不需要。

这是一个简单的查询。

{"Timeout expired.  The timeout period elapsed prior to completion of the 
operation or the server is not responding."}

以下是导致超时的代码..

   var post = (from p in con.blog_posts 
                    orderby p.post_dt descending 
                    select p).First();

任何人都可以想到我应该检查的任何裂缝,试图解决这个问题吗?

编辑:我可以通过管理工作室连接到服务器,它已启动..

2 个答案:

答案 0 :(得分:1)

你可以避免这种情况:

var post = 
    from p in con.blog_posts
    where p.post_dt == con.blog_posts.Max(post=>post.post_dt) 
    select p

答案 1 :(得分:1)

其他数据库查询是否按预期工作?转到您的数据库并运行该查询,看看返回所需的时间。尝试运行确切的查询(在SQL事件探查器中捕获它)。这将告诉您数据库是否只是为此查询执行缓慢,或者它是否是另一个问题。

我的第一个猜测是您在post_dt列上没有索引。直接在SQL中尝试查询将证明或反驳这一点。如果查询需要很长时间才能运行,请在该列上添加非聚集索引并重试。