Daniel Romero
Daniel Romero

Reputation: 1588

Retrieve user from database and cast to an user object

I'm trying to do this:

User user = (User)db.Users.Include("Sports").Where(a => a.UserId == currentUser.UserId);

But I'm getting a cast error.

How can I retrieve a user from database and cast to an user object ?

SOLUTION:

User user = db.Users.Include("Sports").Where(a => a.UserId == currentUser.UserId).FirstOrDefault();   

or

User user = db.Users.Include("Sports").SingleOrDefault(a => a.UserId == currentUser.UserId);            

Upvotes: 1

Views: 323

Answers (4)

user6499570
user6499570

Reputation: 1

var user = db.Users.Find(currentUser.UserId);

db.Entry(user).Reference("Sports").Load();

Upvotes: 0

Chris
Chris

Reputation: 26

I would try

     var user = (from U in db.Users.Include("Sports") 
where U.UserID == currentUser.UserID select U).Single();

Since there should only be one matching userID.

Upvotes: 1

Jorge
Jorge

Reputation: 18237

you could try

 User user = (from U in db.Users.Include("Sports") where U.UserID == currentUser.UserID select U).FirstOrDefault()

Upvotes: 2

Shyju
Shyju

Reputation: 218722

You don't need to explicitly cast.

User user = db.Users.Include("Sports").
              Where(a => a.UserId == currentUser.UserId).FirstOrDefault();

This should work, Asssumung Users is a Property of Type DbSet<User>.

Upvotes: 3

Related Questions