私は述語ビルダーでLINQ to SQLのを使用していますし、データベースから取得される情報の量を最適化しようとしています。グリッドビューで表示する特定のフィールドだけを選択したいと思います。私は私が欲しいものだけを選択すると、検索パラメータは、私は動作しません(下記参照)を追加し、どちらもPredicateBuilderは行いません。私は唯一の私が必要なものを選択することに変更した場合はここでは、このように、LINQの - のみ(述語ビルダ/ w)の特定の情報を選択し
' Initial Setup '
Dim db As New MyDataContext()
Dim results = From p In db.Products _
Select p
' Search '
If (testCase) Then
results = results.Where(Function(p) p.SomeAttribute = 123)
End If
(動作するが、あまりにも多くの情報ですEVERYTHINGを取得します)私は現在やっているものだ
:Dim results = From p In db.Products _
Select p.Name, p.SomethingElse
その後、情報が選択されている場合、私は、私はその属性上で(where句を追加)を検索することができますが、そのない場合は、私はできません(つまり、私はp.SomeAttributeを選択)気づきました。そして述語ビルダーでは、アイテム全体(つまりpを選択)を選択した場合にのみ機能します。これで済むのは、検索する属性を選択する必要のないSQL文を作成することだけです。どのように私はこれを動作させ、必要なものだけを選択することができますが、何かを検索してprediateビルダーを動作させますか?どんな助けでも助けてください!おかげ
こんにちは、これを実際に試してみましたが、このエラーが発生しました。 'System.Data.Linq.DataQuery'1型のオブジェクトをキャストすることができません[VB $ AnonymousType_0'3 [System.Int32、System.Int32、System .String] System.Linq.IQueryable'1 [MyNamespace.Product] '」を入力します'。 その1つの周りの任意のアイデア? – Ryan
私の例では、そのエラーを起こすバグがありました。私はそれを修正するための例をアップロードしました。 –
私はそれをコメントした後、私はそれを得た、申し訳ありません。しかし、あなたのソリューションはまさに私が探していたものです。ありがとう! 型「System.Data.Linqのオブジェクトをキャストすることができません: – Ryan