Конфликт вставки LINQ-to-SQL - PullRequest
0 голосов
/ 09 августа 2009

Я получаю эту ошибку при вставке нового альбома:

{System.Data.SqlClient.SqlException: 
INSERT statement conflicted with COLUMN FOREIGN KEY 
constraint 'FK_ChannelAlbum_Group'. 
The conflict occurred in database 'Stamper', table 'Channel', column 'ID'.

Я не знаю, что происходит, потому что когда я вставляю новый альбом в контекст, возникает ошибка, но в таблице Album нет только таблицы Channel ID, таблицы Album_Channel. Эта вставка никак не влияет на таблицы album_channel и channel. Почему возникает конфликт?

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

Я не уверен, что это хороший способ создания единого стиля для создания контекста, например

Я написал контекст как класс, и этот контекст создавался только один раз, чтобы предотвратить его создание слишком много раз.

1 Ответ

0 голосов
/ 09 августа 2009

Трудно ответить без диаграммы. Похоже, у вас есть внешний ключ в добавляемой таблице, который не является допустимым первичным ключом в таблице, на которую он ссылается. Если вы не верите, что он у вас есть, то вы можете попробовать проверить свои отношения и, возможно, восстановить свои сущности L2S. Может быть, даже попытаться вставить в эту таблицу вручную и посмотреть, если вы получите ту же ошибку.

Контекст, заключенный в одиночный тег, - плохая идея для веб-приложений, так как он не защищен от потоков. Вы можете посмотреть шаблон «единицы работы» или попробовать кэшировать экземпляр контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...