使用join和union计算Query

时间:2013-08-30 09:16:31

标签: linq-to-sql

您好我想得到这个linq查询的计数。我使用具有存储库模式的实体框架。 可以通过queryUserWalls.ToList()得到结果.Count() 我认为效率低下。 任何身体都可以帮助。

var queryUserWalls = (from participation in _eventParticipationRepository.GetAll()
                      join eve in _eventRepository.GetAll() on participation.EventId equals eve.Id
                      join userWall in _userWallRepository.GetAll() on participation.EventId equals userWall.EventId
                      where participation.UserId == userId
                      select userWall.Id)

               .Union(from userWall in _userWallRepository.GetAll()
                      select userWall.Id);

1 个答案:

答案 0 :(得分:1)

忽略ToList因为它强制执行查询。您想使用Queryable.Count,而不是Enumerable.Count。然后,它将在服务器上执行。