Улавяне на URL адрес на клиентска заявка и анализиране в Odata

Разглеждах доставчика на отразяване на Odata и разбирам, че заявките, които клиентът иска, ще бъдат филтрирани в списъка (CLR обект), който излагаме като IQuereable елемент. Има ли някакъв начин, по който можем да уловим URL адреса на заявката от страната на сървъра и анализираме URL адреса, така че да можем да попълним списъка, който излагаме, с подходяща информация при поискване, вместо да попълваме с цялото изхвърляне на данни?


person vinay singri    schedule 16.03.2012    source източник


Отговори (1)


Проектираният начин да направите това е действително да внедрите IQueryable. Може да е малко сложно, но ви дава цялата информация, от която се нуждаете, без да е необходимо да анализирате URL адреса (което е още по-сложно, за да го направите правилно).

Разгледайте тази поредица от блогове, които описват изразните дървета, които може да срещнете: http://blogs.msdn.com/b/vitek/archive/2010/02/25/data-services-expressions-part-1-intro.aspx

И тогава вероятно този, който показва, че можете да обработвате само части от дървото на израза и да оценявате останалото в паметта точно както правите днес: http://blogs.msdn.com/b/vitek/archive/2012/01/07/projections-in-custom-providers-simple-solution.aspx

Знам за няколко внедрявания на OData сървър, които използват този подход за частично внедряване на IQueryable (предимно филтрирането и сортирането се извършва в задната част, а останалото се извършва в паметта).

person Vitek Karas MSFT    schedule 16.03.2012