Переделать запрос LINQ в SQL - PullRequest
0 голосов
/ 14 марта 2019

Я использую 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 (в каждой записи журнала есть список процедур). Есть ли другой способ или лучшая практика, или просто получить эти данные, а затем преобразовать его в объект?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...