2013-08-27 6 views
0

Мне не хватает двух тем в документации Breeze, безопасности и способах установки ограничений на возвращаемые данные.Как установить максимальное количество строк для IQueryable

Я не хочу, чтобы кто-то удалял все в базе данных и не хотел возвращать все.

Должен ли я использовать OData? с Odata я могу установить ограничения, которые я хочу.

ответ

0

«Безопасность» - это огромная, растянутая тема, о которой никогда не бывает достаточно. Надеюсь, на этом уберу.

Что касается ограничения максимальных записей, я бы использовал параметр [Queryable] атрибута PageSize. Атрибут [BreezeQueryable] наследует эту опцию, чтобы вы могли написать свой Web API метод контроллера или поддерживающий метод хранилища, как это:

 
[HttpGet] 
[BreezeQueryable(PageSize=100)] // returns a maximum of 100 orders 
public IQueryable Orders() { 
    return ContextProvider.Context.Orders; 
} 

Вы также мог бы быть в состоянии ограничить результаты, добавив сверху запрос внутри метода.

 
[HttpGet] 
public IQueryable Orders() { 
    return ContextProvider.Context.Orders.take(100); 
} 

Однако некоторые условия запроса могут не пройти. Сначала попробуйте.

+0

Я вижу, что существует некоторое совпадение между odata и breeze, и у меня есть ОЧЕНЬ трудное время, решающее, что использовать EFContextProvider или EntitySetController. Я хочу, чтобы иметь возможность использовать api с любым клиентом. –

+0

Я думаю, вы имеете в виду перекрытие между улучшениями Breeze.NET стандартным контроллером веб-API и контроллером OData веб-API ASP.NET, EntitySetController. Оба являются предложениями веб-API на стороне сервера. Собственный бриз - это чисто клиентская сторона. Я не могу подчеркнуть эту разницу. Сказав это, я не уверен, как вы выберете. Лично я чувствую себя намного более уверенно со стандартными контроллерами Web API, которые более легко доступны для более широкого круга клиентов. С EntitySetController вы в значительной степени ограничены клиентами OData. ИМО. – Ward

Смежные вопросы