Обновление, ограничения внешнего ключа и нули - PullRequest
0 голосов
/ 18 января 2009

Я создаю шаблон данных в C #. С помощью хороших людей на этом замечательном сайте мне удалось решить практически все проблемы. Это должно быть последней проблемой. Поскольку это шаблон, над которым я работаю, мне нужно каждое поле в таблице, включая нули. Мне помогли, как обновить нули, добавив (объект) this.field ?? DBNull.Value, но у меня есть поле, которое является внешним ключом, и даже когда я смотрю в базу данных, он говорит, что ноль, когда я извлекаю записи, значение становится 0. Когда я пытаюсь обновить это поле, он говорит, что я нарушаю внешний ключ ограничения. Как я могу обойти эту проблему? Я думал, что нулевое решение будет работать, но оно не показывает как ноль, оно показывает как 0.

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 января 2009

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

0 голосов
/ 18 января 2009

В общем случае не стоит разрешать FK быть нулевыми. Некоторые базы данных (я знаю, что это делает oracle) применяют это, привязывая FK к первичным ключам, а не к столбцам в других таблицах. Не могли бы вы провести рефакторинг ваших таблиц, чтобы для этого столбца не требовались значения NULL?

...