Entity framework 可查询的结果何时在Web API中具体化?

Entity framework 可查询的结果何时在Web API中具体化?,entity-framework,linq,asp.net-web-api,Entity Framework,Linq,Asp.net Web Api,如果我有一个Web API控制器,其中数据库上下文是使用依赖项注入创建的。我有这样的代码 public IQueryable<Person> GetAll() { return dbContext.People; } public IQueryable GetAll() { 返回dbContext.People; } 这是可行的,但我试图理解IQueryable结果何时实现?根据我的理解,当结果被迭代时,它将被物化,但我没有看到任何

如果我有一个Web API控制器,其中数据库上下文是使用依赖项注入创建的。我有这样的代码

    public IQueryable<Person> GetAll()
    {
            return dbContext.People;
    }
public IQueryable GetAll()
{
返回dbContext.People;
}

这是可行的,但我试图理解IQueryable结果何时实现?根据我的理解,当结果被迭代时,它将被物化,但我没有看到任何显式代码。

您的WebAPI必须将结果序列化为JSON/XML,因此我猜这将隐式地完成。如果您使用OData(),则在执行OData查询之前,您操作的结果不会被物化。但是,是的,在转换为XML或JSON或其他格式之前,它们会被具体化。