Вот список способов выбора пользователей по разным параметрам.
Например я хочу позвонить GetUsers(string email, bool isActive)
.
Будет ли Linq2Sql выбирать список всех активных пользователей с GetUsers(bool isActive)
и передавать этот список на GetUsers(int userId, bool isActive)
? Или у меня будет только один вызов к базе данных в GetUsers(string email, bool isActive)
?
internal IQueryable<User> GetUsers(bool isActive)
{
IQueryable<User> users = Context.Users;
if (isActive)
users = users.Active();
return users;
}
internal IQueryable<User> GetUsers(int userId, bool isActive)
{
return this.GetUsers(isActive).Where(item => item.Id == userId);
}
internal IQueryable<User> GetUsers(string email, bool isActive)
{
return this.GetUsers(isActive).Where(item => item.Email.Equals(email, StringComparison.OrdinalIgnoreCase));
}