Я использую EF и LINQ, но это медленно.
Я хочу переделать запрос для очистки SQL, но возникла проблема.
Например, у меня есть этот запрос.
var request = await db.Journal.AsNoTracking().Where(x => x.userid == userId).Select(x => new Statistic
{
DoneAt = x.DoneAt,
Description = x.Description,
Procedures = x.Procedures.Select(a => new Procedures
{
Name = a.Name,
Time = a.Time
}).ToList()
}).ToListAsync();
Две связанные таблицы Журнал и Процедуры. Одна запись в журнале связана с одной или несколькими записями в процедурах. И это легко сопоставить с EF. Я получаю список процедур для каждой записи в журнале. Все в порядке.
Далее я пытаюсь преобразовать этот запрос в SQL и использую Join для получения результатов в одной таблице. Но я получил строку с дубликатами, когда процедуры имеют более одной строки. И это нормально. Но работать с ним неудобно - нужно разобрать его и сделать так, как было, когда я использую LINQ и EF (в каждой записи журнала есть список процедур). Есть ли другой способ или лучшая практика, или просто получить эти данные, а затем преобразовать его в объект?