0

データ クエリには Ria Service domainservice を使用します。

私のデータベースには、ファーストネーム、ラストネームを持つテーブル People があります。次に、データ処理に EF/RIA サービスを使用します。

次に、フィルター ビューモデルを作成してユーザー入力をキャプチャし、その入力に基づいて、データにアクセスするための linq クエリを作成します。

サーバー側では、person のデフォルトの DomainService クエリは次のとおりです。

 public IQueryable<Person> GetPerson()
   {
     return this.Context.Person;
   }

クライアント側では、フィルターのlinqクエリは次のようになります(ここではContains関数を使用しています):

if (!String.IsNullOrEmpty(this.LastName))
    q = q.Where(p => (p.LastName.Contains(this.LastName)));

生成されたlinqクエリは次のようなものです(デバッグ時に取得しました):

MyData.Person[].Where(p => (p.LastName.Contains(value(MyViewModel.PersonFilterVM).LastName) || p.Person.LegalLastName.Contains(value(MyViewModel.PersonFilterVM).LastName)))

アプリを実行すると、検索の姓に「Smith」を入力しましたが、結果は「Smith」とはまったく関係ありません!

修正方法は?

4

2 に答える 2

0

デバッガーをチェックインするとvalue(MyViewModel.PersonFilterVM).LastName、クエリが解決された時点で Smith と評価されますか?

クエリは列挙されるまで解決されないことを思い出してください。

于 2009-12-06T03:32:02.827 に答える