Представьте себе следующие классы:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Underage
{
public int Age { get; set; }
}
И я делаю что-то вроде этого:
var underAge = db.Underage.Select(u => u.Age) .ToList()/AsEnumerable()/AsQueryable()
var result = db.Persons.Where(p => underAge.Contains(p.Age)).ToList();
Какой лучший вариант? Если я вызову ToList()
, элементы будут получены один раз, но если я выберу AsEnumerable
или AsQueryable
, они будут выполняться каждый раз, когда человек будет выбран из базы данных в Where()
(если это так, я не знаю, что такое база данных). делает на заднем плане)?
Также есть ли большая разница, когда несовершеннолетние будут содержать тысячи записей по сравнению с небольшим количеством?