【问题标题】:LINQ to Entities (The wait operation timed out)LINQ to Entities(等待操作超时)
【发布时间】:2019-01-30 17:52:12
【问题描述】:

我想在这里找到一个查询的帮助。我在我的 ASP.NET MVC 项目中使用实体框架和 SQL DB。有成型机的记录。每条记录都有名称,如“156812 NameOfParameter”,其中编号为成型机生产编号,名称为参数名称,日期。成型机的每个循环都会创建一组具有相同日期的记录。但是记录组中不一定有所有参数。这意味着缺少参数的值与具有较旧日期和名称的第一条记录的值相同,例如“%NameOfParameter”

我的目标是创建成型机循环列表。这意味着具有相同日期和时间的参数列表(没有毫秒数)并填写所有缺失值。

数据库中特定成型机的数据集和日期从 -> 到

var lisData = GetSet().Where(t => t.Name.Contains(cisloLisu));
            if (request.DateFrom.HasValue && request.DateTo.HasValue)
            lisData= lisData.Where(t => t.SampleDateTime >= request.DateFrom.Value && t.SampleDateTime <= request.DateTo.Value);

1) 按日期和时间分组(无毫秒)

            var set =
            from tag in lisData
            group tag by DbFunctions.CreateDateTime(
                tag.SampleDateTime.Year,
                tag.SampleDateTime.Month,
                tag.SampleDateTime.Day,
                tag.SampleDateTime.Hour,
                tag.SampleDateTime.Minute,
                tag.SampleDateTime.Second)
            into zdvih
            select zdvih;

现在我有IQueryble&lt;IGrouping&lt;DateTime?, HistDataView&gt;&gt; 对象。

2) 从这个对象我需要做成型周期列表

      var set2 =
            from zdvih in set
            let wz = 
                zdvih.FirstOrDefault(t => t.Name.Contains("Cislo nastroje")) ??
                lisData.FirstOrDefault(t => t.SampleDateTime < zdvih.Key && t.Name.Contains("Cislo nastroje"))
            let snr =
                zdvih.FirstOrDefault(t => t.Name.Contains("Cislo dilu")) ??
                lisData.FirstOrDefault(t => t.SampleDateTime < zdvih.Key && t.Name.Contains("Cislo dilu"))               
            select new ZdvihView()
            {
                Datum = zdvih.Key,
                CisloNastroje = wz.Value,
                CisloDilu = snr.Value,
            };

问题是我不知道为什么要花这么多时间。即使我只看最后一小时。我几乎总是收到错误“等待操作超时”

Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.

感谢大家的帮助

【问题讨论】:

  • 您是否尝试过跟踪正在发送到数据库的 SQL?

标签: sql asp.net-mvc linq timeout linq-to-entities


【解决方案1】:

使用默认的 SQL Server 分析器来观察已翻译和执行的 TSQL 查询。翻译后的 TSQL 查询可能需要太多时间来执行。如果不使用 Linq Insight 之类的 linq profiler 来分析您的查询并找到瓶颈。

【讨论】:

    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多