データ クエリには 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」とはまったく関係ありません!
修正方法は?