`from..where` lub` FirstOrDefault` w LINQ

Tradycyjnie, gdy próbowałem pobrać dane dla użytkownika z bazy danych, i zastosowałem następującą metodę (do pewnego stopnia):

DbUsers curUser = context.DbUsers.FirstOrDefault(x => x.u_LoginName == id);
string name = curUser.u_Name;
string email = curUser.u_Email;

Widać, że wszystko, co chcę zrobić, to pobrać nazwę i adres e-mail, ale wydaje mi się, że to zapytanie LINQ się pojawiawszystko przechowywane w bazie danych tego użytkownika, przywracające go, a następnie pozwalające uzyskać to, czego chcę.

Prowadziłem badania i znalazłem następującą alternatywę:

var current = from s in context.DbUsers
where s.u_LoginName == id
select new {
             name = s.u_Name, 
             email = s.u_Email
           };
foreach (var user in current)
{
    //Stuff Here
}

Co byłoby lepsze, jeśli w ogóle? Czy istnieje lżejsza metoda, gdy chcę pobrać tylko kilka wyników / danych?

questionAnswers(3)

yourAnswerToTheQuestion