我有一个同步调用:
_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault();
我需要将它包装成一个异步方法,以便我可以使用
await
关键字进行等待。如何实现呢?谢谢。我有一个同步调用:
_context.User.Where((u) => (u.UserID == twitterId && u.Type == UserType.Show)).SingleOrDefault();
await
关键字进行等待。如何实现呢?谢谢。你需要使用Task.Run
方法来封装同步调用。
var user = await Task.Run(() =>
_context.User
.Where(u => u.UserID == twitterId && u.Type == UserType.Show)
.SingleOrDefault());
请记住,EntityFramework 6.0版本将具有异步接口,因此您将不再需要使用此代码。
QueryableExtensions,是EF6新增的功能,使得这个过程变得轻而易举:
await _context.User.SingleOrDefaultAsync(u =>
u.UserID == twitterId
&& u.Type == UserType.Show);