[BreezeController]
Web APIの属性を見てください。クライアント クエリ パラメーターを含む LINQ 式を構成する方法が表示されます。
ただし、適切なサーバー側のデータ ウォッチャーを設定し、それを使用してクライアントが関心のある変更をフィルター処理できるように、解析された形式でクライアント クエリ情報を保持する方が、あなたの目的のために役立つと思います。Web API は、この情報をオプション パラメータで提供します。ODataQueryOptions<T> options
ここT
で、 は と同じ型IQueryable<T>
です。
理論的には、実際には関心のある変更を登録する単なるメソッドである「リソース」にクエリを送信できます
たとえば、人気商品のクエリがあるとします。
var hotStuff = Breeze.EntityQuery.from('Products').where('IsHot', 'eq', 'true');
manager.executeQuery(hotStuff).then(成功、失敗);
別のリソースをターゲットにして、そのクエリを少し修正します
var hotStuffWatcher = Breeze.EntityQuery.from('ProductsWatch').where('IsHot', 'eq', 'true');
manager.executeQuery(hotStuffWatcher); // 何を返すか、何を返すかは気にしません
Web API 側では、そのメソッドは
[HttpGet]
[BreezeQueryable] // このメソッドが IQueryable<T> を返したかのように扱うように Breeze に指示する必要があります
public RegistrationToken ProductsWatch(ODataQueryOptions<Product> options)
{
var registrationToken = Watch<Product>(オプション);
registrationToken を返します。// クライアントがウォッチをキャンセルしたい場合に役立つ可能性があります
}
私は主にあなたの研究の手段を提供するために推測していることを理解してください.