Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does Select return a boolean?

I'm working with Entity Framework 6 in MVC 5.

I have the following method:

[HttpPost]
public ActionResult UpdateDetails(ApplicationUser applicationUser)
{
    var context = new ApplicationDbContext();
    var user = context.Users.Select(x => x.UserName == applicationUser.UserName).FirstOrDefault();

//etc etc
}

Users is an IDbSet<ApplicationUser>.

Why am I getting a bool back from the Select method?

My expectation would be to get an ApplicationUser object back. Why isn't this the case?

Thanks

like image 810
prisoner24601 Avatar asked Oct 29 '25 19:10

prisoner24601


1 Answers

Select() projects an element of a sequence. Since x.UserName == applicationUser.UserName returns a bool, the result of the method will be a boolean.

What you want requires the Where method. This filters the sequence based on the specified predicate:

var user = context.Users.Where(x => x.UserName == applicationUser.UserName).FirstOrDefault();

Which can be shortened to:

var user = context.Users.FirstOrDefault(x => x.UserName == applicationUser.UserName);

This is possible, since this overload of FirstOrDefault() takes a filter predicate as second parameter.

like image 91
Henk Mollema Avatar answered Nov 01 '25 11:11

Henk Mollema



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!