【发布时间】:2019-12-14 13:28:11
【问题描述】:
我有这行代码:
var attachments = EntityRepository<Attachment>().Entities
.Where(at => at.EntityType == EntityType.EmailTemplate)
.ToDictionary(at => at.Extension, at => at);
EntityRepository<Attachment>().Entities 是 System.Data.Entity.Infrastructure.DbQuery<TResult> 类型,它同时实现了 IQueryable<TResult> 和 IEnumerable<TResult>。
我如何确定它是充当IEnumerable<T>(即从数据库中检索所有行,然后在C# 中进行过滤),还是充当IQueryable<T>(将C# 谓词转换为SQL 查询并仅检索那些行)。
【问题讨论】:
-
您可以检查查询实例是否实现接口:
myQuery is IQueryable。我感觉你可能会打XY problem,所以请详细说明你为什么要解决这个问题。 -
@IlliaPopov 这不是 XY 问题。代码工作正常。我只是好奇幕后发生了什么。
标签: c# entity-framework ienumerable iqueryable