将LINQ请求重新制作为SQL

时间:2019-03-14 18:46:55

标签: c# sql asp.net sql-server linq

我正在使用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();

两个相关的表Journal和Procedures。日记中的一项记录与“程序”中的一项或多项记录有关系。而且使用EF轻松映射它。我收到了日记中每条记录的程序清单。没关系。

接下来,我试图将这个请求重新发送到SQL,并且我正在使用Join在一个表中接收结果。但是,当过程有多于一行时,我收到重复行。没关系但是使用它并不方便-需要对其进行解析并使其像我使用LINQ和EF时一样(每个日记记录都有一个过程列表)。是否有其他方法或最佳实践,或者只是检索此数据然后将其转换为对象?

0 个答案:

没有答案