我有一种方法可以使用linq将用户的信息提取到sql类。该方法使用调用现有存储过程的linq语句执行三个查询。这是我如何布置我的linq语句的一个例子。
using (var db = new TestDataContext(connection)))
{
var user = db.proc_UserInfo(userId);
foreach (var x in user)
{
string FullName = x.FirstName + " " + x.LastName;
string Address = x.Addr1;
string City = x.City;
}
}
通过web api控制器调用此方法,该控制器从jquery ajax请求触发。它工作正常,但当我通过匆忙更改下拉列表充满了ajax请求的用户,我注意到如果我能够足够快地执行它看起来像进入数据库的一批查询被取消和调用暂停几分钟,下一次查询超时并返回null对象。有一点需要注意,这些查询不会返回几行数据。我仍在试图弄清楚发生了什么,并愿意接受建议。提前致谢。
答案 0 :(得分:1)
首先,我认为人们可能需要更多信息。数据库类型我假设是SQL Server但你还没有列出一个版本。无论如何,它可能是一些东西。请记住,AJAX调用作为http请求/帖子运行,因此可能存在IIS超时或其他各种IIS限制。此外,您的调用是否异步等.Jquery有一些您可能想要验证的设置。表锁定也是SQL Server的一种可能性。还要检查浏览器的ram / w3wp使用情况,以确保它没有耗尽资源。
首先,我建议运行SQL Profiler来验证最新情况,然后检查这些查询的执行计划。如果有大量数据,则可能需要一些索引。