Я не верю, что Entity Framework вообще выполняет пакетную вставку (в настоящее время). Таким образом, если вам нужно сохранить количество обращений к БД настолько низким, вероятно, вам придется использовать хранимую процедуру или триггер базы данных. К счастью, Entity Framework поддерживает хранимые процедуры, которые возвращают типы сущностей. Об этом есть документация на MSDN. Вы можете создать процедуру, которая принимает список строк тегов и возвращает экземпляры сущностей тегов. Кроме того, вы можете добавить столбец VARCHAR в таблицу сообщений для списка тегов с разделителями и проанализировать его в триггере.