gpt4 book ai didi

c# - 多包含超时

转载 作者:行者123 更新时间:2023-11-30 13:06:51 28 4
gpt4 key购买 nike

我使用的是 EF 6.1.1,我正在尝试使用下面的 LINQ 查询拉回数据。我可以在不到 30 行的时间内手动编写此查询,但 Entity Framework 却需要数千行。请看下面的 SQL,我是否遗漏了什么?

LINQ

_UserRepository
.Query()
.Include(a => a.PaymentSchedules)
.Include(a => a.Profile.ProfileImages)
.Include(a => a.Profile.ProfileImages.Select(c => c.Image.HomePageImage)) //<<< this causes 100+ joins
.Include(a => a.Profile.ProfileImages.Select(i => i.Image.HoverOverImage)) //<<< this causes 100+ joins
.AsQueryable()
.Where(a => a.PaymentSchedules.Any(p => p.Active == true && p.DatePaid > eighthOfMonth))
.Where(a => a.Profile.ProfileImages.Any(prof => prof.CurrentImage == true))
.Select(a => a.Profile)
.OrderBy(a => a.Id) //require for using skip
.Skip(skipInt)
.Take(takeInt)
.ToList();

SQL

**Stackoverflow 甚至不允许我发布 SQL,因为它超过 100K 个字符并且包含超过 200 个左连接!!

请帮忙。

** 已编辑:复制粘贴失败。

最佳答案

EF 非常强大,但我不喜欢它处理像这样包含许多连接或包含的非常复杂的查询,我更喜欢使用 Dapper(更快)。

https://github.com/StackExchange/dapper-dot-net

此外,您可以将查询拆分为更小的查询,例如:在单独的查询中获取 ProfileImages,然后获取 PaymentSchedules ..

关于c# - 多包含超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24815051/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com