Я в ситуации, когда я импортирую множество записей «ссылок» из файла XML, и я хочу вставить их в таблицу ссылок SQL с помощью Entity Framework. Моя ссылка стол буквально только 2 колонки, оба из которых являются ФКС и составляют ПК:Entity framework - вставка по ID
[UserAssessmentId] [int] NOT NULL
[AnswerId] [int] NOT NULL
Путь я привык делать вставки включает в себя следующее:
- Получить
UserAssessment
объект от БД дляuserAssessmentId
. - Получить объект
Answer
из базы данных дляanswerId
. - Добавить объект
Answer
в категориюUserAssessment
Answers
. - Повторите 2 и 3 для каждого
answerId
, чтобы добавить. - Звоните
context.SaveChanges()
.
Беда в том, что это чрезвычайно интенсивный DB при добавлении сотен ответов; EF должен получить отчет за каждый ответ он добавляет в таблицу ссылок! Я просто хочу вставить запись с заданным userAssessmentId
и данными answerId
, а не с трудом получить предмет сначала. EF не нужно беспокоиться о том, являются ли введенные мной идентификаторы действительными; просто предположите, что они есть. Есть ли способ получить EF для этого или мне нужно просто использовать простой SQL?
+1 Звучит как возможное решение. Вероятно, лучше, чем включение соединительной таблицы в основной модели (и потеря многих для многих). –
Я попробовал это решение, и он дает мне «Модель, поддерживающая контекст« UserAssessmentsAnswersContext », изменилась с момента создания базы данных. Подумайте о том, как использовать First First Migrations для обновления базы данных (http://go.microsoft.com/fwlink/? LinkId = 238269) «. когда я пытаюсь добавить объект в контекст. Не знаю, почему. – Jez
OK Я просто попробовал «Add-Migration» в недавно созданном контексте; он хочет отказаться от всего, включая существующую таблицу UserAssessmentsAnswers (предположительно из-за отсутствия ссылок FK в новом контексте) - есть ли какой-либо способ этого? – Jez