我正在使用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时一样(每个日记记录都有一个过程列表)。是否有其他方法或最佳实践,或者只是检索此数据然后将其转换为对象?