У меня следующая ситуация:NHibernate Фильтрация данных лучших практик
пользователь входит в систему, открывает обзор всех продуктов, могут видеть только список продуктов, где добавляется условие, это условие является переменной величиной. Пример: WHERE category in ('catA', 'CatB')
Администратор регистрируется, открывает обзор всех продуктов, он может видеть все продукты, не применяемые фильтром.
Мне нужно сделать это как можно более динамично. Мои классы доступа к данным в большинстве случаев используют Generics.
Я видел filters, но мои условия очень переменные, поэтому я не вижу в этом достаточно масштабируемого.
Да, я думаю, я могу сделать что-то подобное, хранить фильтры в какой-то сессии пользователя (веб-окружение). Большинство фильтров будут на самих столбцах таблицы, а не на объединениях. –
Хорошо работает. Наша среда также является сайтом ASP.NET, мы используем пользовательскую фабрику «DefaultTypedFactoryComponentSelector» с Castle.Windsor, которая вместе с классом атрибутов фильтра позволяет нам использовать фильтры-источники из нашего контейнера, используя только имя строки (из статического класса, содержащего жесткий кодированный фильтр имена) и которые могут быть установлены путем простого вызова Apply, опционально устанавливая некоторые данные контекста с помощью метода 'void SetValue (T value)' в интерфейсе. – Svend