В LightSwitch У меня есть событие PreprocessQuery следующим образом: (! На стороне HTMLClient)PreprocessQuery события в LightSwitch терпит неудачу
partial void ValidOrders_PreprocessQuery(ref IQueryable<Order> query)
{
query = query.Where(order => OrderIsValid(order));
}
public bool OrderIsValid(Order order)
{
return true;
}
Это не удается с сообщением «метод не может быть пустым».
Но это работает отлично:
partial void ValidOrders_PreprocessQuery(ref IQueryable<Order> query)
{
query = query.Where(order => true);
}
Может кто-нибудь понять, почему?
Спасибо, Пол
Спасибо, Servy, это помогает. К слову: я согласен с вашим замечанием о передаче запроса по ссылке, но LightSwitch not me определяет прототип метода. –
@Servy - вы не можете изменить параметры запроса каким-либо образом и не можете вернуть «новый запрос», как вы предлагаете. Единственным механизмом, который предоставляет LightSwitch, является «параметр запроса», который передается по ссылке. Поэтому, чтобы вернуть отфильтрованный набор объектов, вы должны вернуть результаты через предоставленный параметр запроса. Хотя это так, как вы описываете, вполне может быть более «идиоматическим» подходом, это не то, как LightSwitch делает вещи. –
@YannDuran Если это единственный вариант, то пусть будет так; это действительно не изменяет важные части ответа, и это полезно для других читателей, у которых нет такого ограничения. – Servy