2017-03-15 17 views
2

.Netコアで私はクエリがあり、結果を非同期にしたいのですが、プログラムはエラーなしで終了します。エンティティへのコアlinq非同期呼び出しがプログラムを終了します

コードは次のようなものです:

var query = from row in context.MyTable 
      where something == row.something 
      select row; 
var list = await query.ToListAsync(); 

私はFirstAsyncをすればプログラムは終了しますが、私は最初に()またはToListメソッド()を行う場合には罰金実行されます。

私は他の多くのクエリが正常に動作していると私は終わりはかなり残酷だと思っていますが、私はそれを経験して他を見つけることができません。

どうすれば解決できますか?常にあなたのトップレベルを同期しているため、main関数

+1

例外はありませんか?例外設定をオンにしたかどうか –

+0

どうすればいいですか?プログラムをコンソールから実行すると、プログラムが消えてしまいます。ユニットテストは、自分のアサーションに達することなく終了し、サービスが終了したWebサービスから呼び出されたときに終了します。 –

+1

[msdn](https://msdn.microsoft.com/en-us/library/x85tt0dd.aspx) –

答えて

2

を(今の私は、ToListメソッドを使用します)タスクを同期的に待っていたする必要があります。

void Main() 
{ 
    var serviceTask = StartServiceAsync(); 

    // you cannot do await serviceTask, but only 
    serviceTask.Wait(); 
} 

だから、おそらくあなたのサービスが失敗しない - それはちょうどメインFUNCとして終了しています最後にアプリが終了しました。

関連する問題