1

LINQ to Entitiesを使用する場合、オブジェクトに結果がないことをどのようにテストしますか?たとえば、次のクエリは、custidに注文履歴がない場合は結果を返しませんが、ページは読み込まれます。バインドするデータソースがないため、グリッドビューはありません。

Dim result = From c In ctx.orders
                 Where c.CustomerId = custId
          Join prod In ctx.products On prod.Id Equals c.ProductId
        Select New With
        {c.OrderDate,
         c.PurchaseOrderNumber,
         prod.description,
         c.ProductPrice,
         c.ProductQty}

結果がないかどうかオブジェクトをどのようにテストしますか?結果が返されない場合にページに異なるマークアップを提供するために、それをテストしたいと思います。明らかに、私は結果= vbNullの場合、Is Nothingも試しましたが、機能しません。もう1つの問題は、このクエリをTry Catchブロックで使用する場合、結果が返されない場合でも例外をキャッチしないことです。これはエラーとは見なされないと思います。

4

3 に答える 3

5

あなたはAny()そのように使うことができます:

Dim hasElements As Boolean = result.Any();
于 2012-11-17T14:41:36.083 に答える
2

データをバインドした後、グリッドビューの行数を確認するだけで済みます。のようにデータベースに2回クエリを実行したり、のようAnyに余分なメモリを使用したりすることはありませんToList

于 2012-11-17T15:06:08.473 に答える
1

result後で使用する場合はList<T>、データベースに数回接続しないように、最初のデータベースに変換することをお勧めします。

薄暗いリスト=result.ToList()

そして、それはすでに答えられているので、あなたは電話することができますlist.Any()

于 2012-11-17T14:54:39.163 に答える