Я прочитал множество вопросов здесь, которые на первый взгляд кажутся похожими, но кажутся совсем не такими.Огромные извинения, если на этот вопрос есть ответ, но, как я уже сказал, я прочитал грузы и не могу найти ответ.
Я использую Entity Framework и MVC 3. Я пытаюсь добавить теги к продуктам.в моей структуре сущностей, которая имеет отношение многие ко многим и таблицу, связывающую их просто двумя ключами в таблице ссылок, поэтому EF объединяет теги в свойство Product.Таблицы настраиваются следующим образом:
Product: ProductID [int, первичный ключ], имя и т. Д.
Метки: TagName [строка, первичный ключ]
ProductTags:ProductID, TagName
Таким образом, чтобы получить доступ к ProductTags, я могу просто использовать product.Tags
Это мой код:
dbProduct.Tags.Clear();
foreach (var tag in productModel.Tags)
{
Data.Tag dbTag = new Data.Tag();
dbTag.TagName = tag;
dbProduct.Tags.Add(dbTag);
}
dbProduct является сущностью Product, а Data являетсяПространство имен.productModel.Tags - это List<string>
Когда я SaveChanges()
получаю следующее исключение:
"Нарушение ограничения PRIMARY KEY 'PK_Tags_1'. Невозможно вставить дубликат ключа в объект'dbo.Tags'. \ r \ nОпределение прервано. "
Итак, что меня по-настоящему интересует: почему он пытается что-то добавить в dbo.Tags?Мне кажется, это следует просто добавить в теги продукта, а не теги.Я не упоминаю теги где-либо еще в этом методе, и поэтому ни в коем случае не пытаюсь добавлять что-либо непосредственно в таблицу тегов.Такое чувство, что у меня может быть что-то неправильно настроено в EF, но я не могу думать, что именно, и это было сгенерировано из базы данных.
Снова извините, если это ослепительно очевидно, я чувствую себя довольно глупо.Любая помощь очень ценится.