在我的存储库中,我使用ToList()方法返回不同的列表。
问题是,当我对返回的结果(即List类型)运行更多的LINQ时,它也会为此生成一个数据库调用。显然,第二个linq调用是纯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有什么帮助或想法来停止这个额外的数据库调用吗?
发布于 2012-05-07 17:28:07
从仓库返回IEnumerable<User>或IQueryable<T>,则不会查询数据库。
在ToList()之后,只有第二个调用会这样做。
https://stackoverflow.com/questions/10479626
复制相似问题