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