2009-05-29 2 views

答えて

5

LINQ結果を変数に代入し、.Count()が0より大きいかどうかを確認できます。同じクエリを2回実行する必要はありません。

コード:

'check for empty return 
Dim r = (From s In myEntity.employee Where employeeID = myEmployeeIDVariable) 

'If there is a record, then process 
If r.Count() > 0 Then 
    . . . do stuff . . . 
End If 
+0

ありがとうございます。 "count"メソッドは "最初の"呼び出しには存在しません。しかし、私は "最初"を削除しようとし、その後、if文の中で新しい変数を作成しました。これはちょうど "最初の"結果です。 "dim rr = r.first()"もっとよく見え、クエリを1か所に保持します。 – Jeff

+0

同じクエリで.Count()と.First()を呼び出すと、データベースに2回ヒットすることがあります(Linq-to-Objectsはクエリを2回評価しますが、 Linq-to-EntitiesまたはLinq-to-SQL)を使用します。 –

+0

ああ、元のコードをコピーして貼り付けると、それは私のエラーになります。 –

5

利用.FirstOrDefault()。最初のレコードがある場合はレコードを返し、レコードが返されていない場合はnullを返します。

+0

感謝。私はいくつかの例でそれを見たことがありますが、それを試したことはありません。先端を感謝します。 – Jeff

関連する問題