Оптимизация 101 говорит, что не делайте этого, если вам не нужно: - Советы по оптимизации программ на C # /. NET
Но, да, если это действительно статический поиск в течение всего срока службы приложения, и он занимает очень мало ОЗУ, то кеширование будет казаться довольно безвредным, и поиск по словарю из ОЗУ будет быстрее, чем поездка в базу данных. .
Что касается 2-й части, то вы можете также позволить соединению базы данных выполнить ее, возможно, эта таблица уже будет в ОЗУ, а увеличенная нагрузка на сеть будет небольшой.
Но опять же, если вам не нужно это делать, не делайте этого! Опасность здесь в том, что вы делаете это одно, потом другое, потом другое, код становится все более сложным, а оперативная память заполняется вещами, которые, по вашему мнению, могут вам понадобиться, но которые фактически используются редко, оставляя меньше места для OS / ORM / DB делать свою работу. Пусть компилятор, ORM и база данных решат, что вместо этого оставить в памяти - у них гораздо большая команда, сосредоточенная на оптимизации!