Я хотел бы найти помощь здесь по одному запросу. Я использую Entity Framework и SQL DB в моем проекте ASP.NET MVC. Есть записи с литьевой машины. Каждая запись имеет имя , например, "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<IGrouping<DateTime?, HistDataView>>
объект.
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.
Спасибо за каждую помощь