【发布时间】:2017-10-06 02:53:14
【问题描述】:
我的 API 存在性能问题。这是由于从多个表中检索数据,如下所示
例子:
Users.Include(x => x.UsersAdditionInfo)
.Include(x => x.UserRoles)
.Include(x => x.Location)
注意:除了位置表之外,这些表中的每一个都包含近 (1,50,000) 条记录。
我使用了联接而不是 .Include,然后也面临同样的性能问题。
例子:
from ub in users
join ua in UserAdditionalInfo on ub.Id equals ua.UserId
join ur in UserRoles on ub.Id equals ur.UserId
join urs in userRoles on ur.RoleId equals urs.Id
join l in Location on ub.LocationId equals l.Id
into leftLocation
from location in leftLocation.DefaultIfEmpty()
请提供更好的替代方法来查询多个表
【问题讨论】:
-
如果查询计算没有问题(我认为不是,尽管大量包含会使查询计算变得非常繁重),那么您应该尝试减少返回的记录数/实际执行的查询。你在用这些 IQueryable 做什么?
标签: performance entity-framework linq join include