У меня есть приложение ASP.NET MVC, которое использует репозитории Linq to SQL для всех взаимодействий с базой данных.
Для обеспечения безопасности данных я выполняю обрезку, чтобы отфильтровать данные только по тем элементам, к которым у пользователя есть доступ. Это происходит в нескольких местах:
- Данные в представлениях списка
- Ссылки в строке меню
- Вид дерева с левой стороны, содержащий ссылки на контент
- Ролевая безопасность
- Специальный атрибут безопасности, унаследованный от
AuthorizeAttribute
, который реализует авторизацию на основе содержимого для каждого метода контроллера.
В каждом из этих мест создается репозиторий, который открывает Linq to Sql DataContext и обращается к базе данных. Итак, по моим подсчетам, каждый запрос на доступ к странице открывает как минимум шесть отдельных Linq to SQL DataContexts.
Должен ли я беспокоиться об этом с точки зрения производительности, и если да, что можно сделать, чтобы уменьшить его?