2011-01-11 3 views
0

Я использую Linq to SQL, а некоторые из моих таблиц не имеют первичных ключей: это генерирует предупреждения. Не стоит ли иметь таблицы без первичного ключа?Ошибка DBML 1062 - нет первичного ключа

Спасибо.

+0

Joe Celko сказал: * Если у него нет первичного ключа, это не таблица! * Каждая «нормальная» таблица должна иметь первичный ключ, чтобы однозначно идентифицировать каждую строку этой таблицы. –

+0

«Если у него нет первичного ключа, это не таблица» - да ... это представление, и должно быть прекрасно, чтобы его можно было запросить. Отправляясь в сторону, я согласен с вами в том, что таблицы без ПК очень сильно ошибаются, но это не меняет реальности, что иногда это так, и если мы не можем ее изменить, нам нужно ее обойти. L2S отлично работает в ситуации выбора только для этих таблиц. – mattmc3

ответ

0

Если вы делаете только выбор из своего стола, тогда технически нет - нет проблем с отсутствием первичного ключа. Но вставки, обновления и удаления будут проблематичными. Единственная причина, по которой я обнаружил, что в вашем DBML нет ПК, - это когда вы указываете на просмотр только для доступа к данным. Но таблицы действительно должны всегда иметь официально объявленное ограничение первичного ключа.

Смежные вопросы