EntityFramework - почему так много ключей сущностей?

Я создал Entity Data Model из моей базы данных SQL Server. Несмотря на наличие только одного первичного ключа в каждой из моих таблиц, почти все мои свойства помечены как Entity Keys. Я могу, конечно, изменить их, но кто-нибудь может сказать мне, почему это происходит?

2 ответа

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

Тем не менее, я импортировал определения таблиц с уникальными ограничениями и первичными ключами и не видел такого поведения.

Откройте файл edmx с помощью редактора Xml (щелкните правой кнопкой мыши файл Edmx в решении и выберите "Открыть с помощью..."). Как только вы это сделаете, вы увидите в файле комментарии Xml, объясняющие, почему нельзя использовать существующий ключевой столбец. Часто это происходит из-за того, что столбец имеет тип, который не поддерживается EF (например, HierarchyId), поэтому столбец не поддерживается и, следовательно, исключается. Таким образом, в результате получается таблица без ключевого столбца, и создается искусственный ключ. который в таких случаях состоит из всех столбцов типов, которые являются допустимыми типами для ключевых столбцов (например, столбцы пространственных типов будут исключены из этого списка, поскольку они не являются допустимыми ключевыми столбцами - EF)

Другие вопросы по тегам