返回IQueryable <t>,IEnumerable <t>会导致数据库调用吗?</t> </t>

时间:2015-03-20 18:00:20

标签: c# .net entity-framework ienumerable iqueryable

我使用实体框架。假设我有一个方法:

public IEnumerable<User> GetUsers() // return IEnumerable<User>
{
    using (var context = new AppDbContext())
    {
        return context.Users;
    }
}

现在我打电话的时候:

var users = GetUsers();

此操作是否会执行数据库查询?

1 个答案:

答案 0 :(得分:3)

如果你不做任何事情,那就不行,不。

但是,如果你试图迭代结果(或调用Count()等),那么它将尝试进行数据库调用......然后我会发现它会失败,因为你已经处理掉了那时的背景。