2013-08-02 12 views
8

時に「待った」ことができる非同期一つに同期メソッドをラップ:私は同期呼び出してい

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

私はawaitキーワードを使用して待つことができる非同期一つにラップする必要があります。

どうすればこの問題を解決できますか?

ありがとうございました。

+2

[関連するブログポスト](HTTP://blogs.msdn .com/b/pfxteam/archive/2012/03/24/10287244.aspx)。 –

答えて

12

Task.Runメソッドを使用して同期呼び出しをラップする必要があります。

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

バージョン6.0のEntityFrameworkには非同期インターフェイスがあるため、このコードを使用する必要はありません。

3

QueryableExtensionsは、この風を作り、EF6に追加:

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

EntityFramework.dllでSystem.Data.Entityを参照することを忘れないでください

関連する問題