IQueryable в LINQ to entities

Я не совсем понял как это работает. Если IQueryable обращается к БД => происходит выборка => происходит возврат значений. И запрос будет происходить тогда, когда мы к ним обращаемся (через foreach, например). IEnumerable => возвращает все => выборка происходит уже у самого пользователя

  public class MyContext : DbContext
{
    public DbSet<User> Users { get; set; }
    public MyContext(DbContextOptions<MyContext> options)
       : base(options)
    {
        Database.EnsureCreated();
    }
}



public class HomeController : Controller
{     
 public IActionResult Test()
    {

        IQueryable<User> test = db.Users.Where(i => i.Age == 18);
        //есть ли разница?
        IQueryable<User> test =db.Users.Where(i =>i.Age==18).ToList();
        return View(test);
    }
}

В представлении мы уже перебираем данные => обращаемся к базе данных (так как контекст пуст и данные нужно подгрузить). После подгрузки данные остаются в контексте? Есть ли разница между первым и вторым запросами? Я всё правильно написал?


Ответы (0 шт):