2016-08-28 2 views
0

Я использую базовый подход с Oracle. В одной из моих таблиц нет первичного ключа. Он имеет только 2 столбца, которые являются внешними ключами других таблиц.Должна ли каждая таблица иметь первичный ключ с использованием ADO.NET?

Я создал модель в проекте ASP.NET MVC из базы данных (Add - New Item - ADO.NET Entity Data Model).

Но есть проблема - я получаю сообщение об ошибке:

Error 159: EntityType 'DbModel.Store.SomeTableWithoutPK' has no key defined. Define the key for this EntityType. E:\Git_repo\ZZ\ZZ.Domain\DAL\DbModel.edmx

Означает ли это, что каждая таблица должна иметь первичный ключ? Могу ли я избежать этого? Или мне придется добавить новый столбец с первичным ключом в эту таблицу? Конечно, есть возможность применить первичный ключ к нескольким столбцам, но это необходимо?

ответ

1

Каждая таблица должна иметь первичный ключ для эффективности базы данных и позволять редактировать записи.

Вам не нужно, чтобы создать новый столбец для первичного ключа в таблице 2 столбца

В конструкторе выберите обе колонки и использовать оба вместе в качестве первичного ключа. Пока нули не разрешены, и нет дубликатов, вы должны быть в порядке.

Так как это многие ко многим таблице, и вы используете EF, вы можете обнаружить, что добавление столбца DATETIME к столу с GETDATE() в качестве значения по умолчанию будет сделать обслуживание данных проще

+0

DiPix, мой ответ помочь тебе? – Mike

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