Я не думаю, что есть какой-либо явный победитель, особенно если вы считаете, что не все запросы должны быть отфильтрованы по аккаунту. Также учтите, что старый трюк threadlocals
считается ненадежным, что означает, что единственный способ сделать автоматическую вставку параметров фильтра был бы с промежуточным ПО, я думаю ... но это также кажется мне ненадежным и сложным.
Я также не нашел хорошего способа создать менеджер запросов, который мог бы здесь помочь, но это возможно.
Итак, я думаю, что лучшее решение для «мультитенантной» базы данных - просто убедиться, что все ваши запросы отфильтрованы по аккаунту. Вы можете сделать это с:
Промежуточное программное обеспечение в режиме отладки, такое как Промежуточное программное обеспечение: средство проверки владения записями
В ваших тестах проверьте sql, сгенерированный любыми тестами, и убедитесь, что поле запроса находится в запросе. Вы также можете включить в свои тестовые данные данные «другой учетной записи», чтобы ваш тест не отображался ни в одном из результатов запроса.
Проверка всех запросов на наличие фильтра во время проверки кода
Конечно, не очень, но лучшее, что я смог сделать до сих пор.