1

从我的存储库中,我使用 ToList() 方法返回不同的列表。

问题是,当我对这个返回的结果(即 List 类型)运行更多 LINQ 时,它也会为此生成一个数据库调用。显然,这第二个 linq calll 是纯 LINQ to Entity,不应调用数据库。请参阅下面我在做什么。

List<User> us = userRepository.GetMany(u => filterStatusIds.Contains(u.UserStatus.Id));
if (!string.IsNullOrEmpty(name))
us = (from u in us
      where u.DisplayName.Contains(name)
      select u).ToList(); // this ToList should not call database

有什么帮助或想法来阻止这个额外的数据库调用吗?

4

1 回答 1

1

返回IEnumerable<User>IQueryable<T>从存储库返回,它不会查询数据库。

在 ToList() 之后,只有第二次调用会执行此操作。

于 2012-05-07T09:28:06.530 回答