8

I have a synchronous call:

_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault(); 

That I need to wrap into an async one which I can wait on using the await keyword.

How can I achieve this?

Thanks.

1

2 Answers 2

11

You need to wrap your sync call using Task.Run method.

var user = await Task.Run(() => _context.User .Where(u => u.UserID == twitterId && u.Type == UserType.Show) .SingleOrDefault()); 

Keep in mind that EntityFramework in version 6.0 will have async interfaces, so you would no longer need to use this code.

Sign up to request clarification or add additional context in comments.

Comments

3

QueryableExtensions, added in EF6, make this a breeze:

await _context.User.SingleOrDefaultAsync(u => u.UserID == twitterId && u.Type == UserType.Show); 

Don't forget to reference System.Data.Entity in the EntityFramework.dll

Comments