c# - 将 LINQ 请求重新发送到 SQL
问题描述
我正在使用 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。Journal中的一条记录与Procedures中的一条或多条记录有关系。并且很容易用 EF 映射它。我收到日记中每条记录的程序清单。没关系。
接下来,我尝试将此请求重新发送到 SQL,并且我正在使用 Join 在一个表中接收结果。但是当程序有超过一行时,我收到一个重复的行。没关系。但是使用它并不方便 - 需要解析它并使其像我使用 LINQ 和 EF 时一样(每个日志记录都有一个过程列表)。有没有其他方法或最佳实践,或者只是检索这些数据然后将其转换为对象?
解决方案
推荐阅读
- linux - SDL如何检查窗口是否最大化或最小化
- python - Python3 - 请求 - BS4 - Cloudflare -> 403 Forbidden not use Local Proxy
- javascript - 手动输入 URL 时,MERN 路由器链接不起作用
- python - python字典中的值被转换为双引号而不是单引号
- javascript - 使用 Jest 测试应该抛出错误的函数,但总是收到“函数未抛出”错误
- vb.net - 谷歌翻译 API 转换
- javascript - 产生战争时,Node_modules 复制需要太多时间
- perl - perl 脚本中的“无法获取终端大小”错误
- github - 我无法将我的网站部署到 Netlify
- python - 如何从用户输入正确添加到字典并使用 for 循环打印字典?