0

特定の条件を満たすレコードをデータベース (EF 経由で公開) で検索するアプリケーションがあります。2 つのメイン テーブル (ジョブと受信者) があります。受信者は、ジョブ ID によって Jobs テーブルにリンクされます。

ジョブ レコードには、さまざまなフィールド (処理日、名前、ジョブ タイプ) があります。受信者には多くの名前と ID フィールドがあります (例: 口座番号、姓など)

検索するフィールドのリストが表示される検索画面を表示したいと考えています。次に、ASP.net コードは、ユーザーが入力した (または選択した) テキストボックスを確認し、それに基づいてクエリを作成します。

私は可能な限り最も効率的な方法を見つけようとしています。

大まかなロジックは次のとおりです。

    if not string.isnullorempty(txtName.text) then
        'Query.Where.Add clause = " AND Name like '@txtName'
        'Query.WhereParameters.Add("@txtName",txtNAme.text
    end if

if not string.isnullorempty(txtAccountNumber.text) then 

.....etc


 if not string.isnullorempty(txtFromDate.text) then..

私が立ち往生しているのは、追加の where 句を追加する方法を考え出すことです。Entity SQL だけを使用する必要がありますか?

これは厳密に型指定された EF オブジェクトも返すことができますか? Jobs オブジェクトと Recipients オブジェクトの両方を返すことは可能ですか?

たとえば、受信者を選択した場合。、ジョブ。from....何とかこれは正しく解析され、リンクされた受信者とジョブオブジェクトを返しますか?

4

1 に答える 1

2

厳密に型指定されたフィルター処理されていないクエリから開始する場合は、 を使用してフィルターを追加できますQueryable.Where

Name = txtName.Text
If Not String.IsNullOrEmpty(Name) Then
    Query = Query.Where(Function(j) j.Name.Contains(Name))
End If

フィルター処理されていないクエリが複数のレコードを正しくリンクしている場合、フィルターを追加してもそれらのリンクは保持されます。

(免責事項: 私は通常 VB.NET を使用しません。ばかげた構文エラーがあるかもしれませんが、一般的な考え方は理解できるはずです。)

于 2012-04-25T07:12:39.127 に答える