У меня есть таблица тегов, схема которой состоит только из идентификатора и имени (уникального). Теперь из графического интерфейса пользователь может вводить теги для BlogPost. Когда данные сохраняются с тегами, хранящимися в массиве строк (имен), я хочу добавить теги, имена которых еще не существуют, в таблицу тегов и игнорировать теги, имена которых уже существуют, И получить обратно список всех сущностей тегов (включая существующие и добавленные). Как я могу сделать это в Entity Framework всего за 1 цикл SQL?
Что касается возвращаемых тегов, я хочу связать их с добавляемым объектом BlogPost (который только что создан и еще не хранится в БД через EF). Возможно ли, что этот шаг можно объединить с этапом №1 в 1, или мне придется выдавать другой запрос?





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