2009-08-24 17 views
1

私はVB.Net 2.0セルフサービスコードを生成したLLBLGen Proプロジェクトを持っています。LLBLGen Pro:与えられた文字列のEntityFieldを評価する方法

私は、生成されたコードを使用して検索に基づいてカスタム構造のリストを返す関数を持っています。

FieldNamesとValuesのディクショナリをこの関数に提供したいと思います。それぞれに対して、新しい述語式を検索に追加したいと思います。

フィールド名を表す辞書内の文字列を確認し、どのEntityFieldに述語式を追加するのがよいでしょうか?

コードサンプル

Dim dbFiles As New AllFilesCollection 
Dim dbFilter As New PredicateExpression 

If Not String.IsNullOrEmpty(ClientName) Then 
    dbFilter.Add(New PredicateExpression(AllFilesFields.ClientMenuName = ClientName)) 
End If 

If Not String.IsNullOrEmpty(SearchText) Then 
    dbFilter.Add(New FieldLikePredicate(AllFilesFields.ClientReference, "%" & SearchText & "%")) 
    dbFilter.AddWithOr(New FieldLikePredicate(AllFilesFields.Cmsnumber, "%" & SearchText & "%")) 
End If 

For Each Filter As KeyValuePair(Of String, String) In Filters 

    'Custom code here to determine the field to add a filter for. 

Next 

dbFiles.GetMulti(dbFilter) 
+0

LLBLGenのサポートフォーラムでこれを聞いたことがありますか?回答が得られる可能性が高いです... – Matt

答えて

1

私はそれがLLBLGENの質問のように見えるので、この質問は無視されてきたと思いますが、それはおそらくではありません。

、あなたのすべての列が分かっている場合:

  • ジップ

を次に、あなたはちょうどこのようなそれらの値にあなたの文字列を変換する必要があります...

For Each Filter As KeyValuePair(Of String, String) In Filters 
    Select Case filter.Key 
     Case "City" 
      dbFilter.Add(New PredicateExpression(AllFilesFields.City = filter.Value)) 
     Case "State" 
      dbFilter.Add(New PredicateExpression(AllFilesFields.State = filter.Value)) 
     Case "Zip" 
      dbFilter.Add(New PredicateExpression(AllFilesFields.Zip = filter.Value)) 
    End Select 
Next 
0

また、このようなもの:

Dim fields As IEntityFields = new AllFieldsEntityFactory().CreateFields(); 
For Each Filter As KeyValuePair(Of String, String) In Filters 
    dbFilter.Add((EntityField) fields[Filter.Key] == Filter.Value); 
Next 
関連する問題