Извинения, если где-то есть четкий ответ. Но я не могу вставить в простую таблицу, потому что она содержит внешний ключ.
Таблица задач
TaskId (PK)
Описание
StatusId (FK)
В который я пытаюсь вставить вот так:
Task t = new Task();
t.Id = 1234;
t.Title = "foo";
t.Status = db.Status.ToList().First();
Но получите ошибку updateException:
Отношение добавляется или удаляется из AssociationSet 'FK_Task_Status'. С ограничениями по количеству элементов, соответствующая «Задача» также должна быть добавлена или удалена.
Как я могу вставить в эту таблицу?
Приветствия
....
Нашел мою проблему ....
Моя схема была неверной. Когда я создал свой внешний ключ, я указал на неправильное поле. Посмотрел в профилировщике SQL, увидел это:
ВЫБРАТЬ
1 AS [C1],
[Extent1]. [Id] AS [Id],
[Extent1]. [Descr] AS [Descr],
[Extent2]. [Id] AS [Id1]
ОТ [dbo]. [Status] AS [Extent1]
ВЛЕВО НАРУЖНОЕ СОЕДИНЕНИЕ [dbo]. [Task] AS [Extent2] ON [Extent1]. [Id] = [Extent2]. [Id]
Что должно быть (присоединение к statusId, а не id):
ВЫБРАТЬ
1 AS [C1],
[Extent1]. [Id] AS [Id],
[Extent1]. [Descr] AS [Descr],
[Extent2]. [Id] AS [Id1]
ОТ [dbo]. [Status] AS [Extent1]
LEFT OUTER JOIN [dbo]. [Task] AS [Extent2] ON [Extent1]. [Id] = [Extent2]. [StatusId]
Глупый я;)