LINQ к ошибке SQL ForeignKeyReferenceAlreadyHasValueException

Эта ошибка сгенерирована, когда я пытаюсь изменить внешний ключ. Я знаю, что это - очень распространенная ошибка, я нашел тонны информации об этом и попытался реализовать меры, которые я нашел, но я все еще получаю эту ошибку при попытке обновить Ключи. Ссылочный Поток

Первоначально я просто непосредственно присваивал значение и пытался отобразить объекты.

ticket.assigned_to_group = assigned_to

Я с тех пор изменился, чтобы попытаться отобразить объекты, которые я верю корректному ответу; однако я все еще получаю ошибку.

ticket.assigned_to_group = db.sub_units.Single(f => f.id == assigned_to).id;

Любая идея, почему это не работало бы. Также, если у меня есть таблица с несколькими внешними ключами, я должен действительно сделать новый запрос для каждого ключа или есть ли лучший путь?

14
задан Community 23 May 2017 в 12:09
поделиться

2 ответа

Я думаю, вы пытаетесь назначить идентификатор, когда вам нужно назначить объект. (Я не на 100% уверен, что это то, что вы делаете)

// Don't assign just the id
Person.ParentId = parentId;

// Assign the entity
Person.Parent = db.Parents.Single(x.Id == parentId);
35
ответ дан 1 December 2019 в 07:39
поделиться

Что касается вашего второго вопроса, вы можете загрузить все sub_units с помощью

var groups = db.sub_units. ToArray () и, попав в память, сделайте что-то вроде этого:

foreach(var ticket in tickets)
{
    ticket.assigned_to_group = groups.Single(f => f.id == assigned_to);
}
0
ответ дан 1 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: