Entity Framework Code First - внешний ключ к полю не первичного ключа - PullRequest
6 голосов
/ 20 сентября 2011

У меня есть две таблицы, которые выглядят так:

dbo.ReviewType
    ReviewTypeId INT PRIMARY KEY
    ShortName CHAR(1) - Unique Index
    Description

dbo.Review
   ReviewId INT PRIMARY KEY
   ReviewType_ShortName CHAR(1) - FK to ReviewType
   ...

У отзыва всегда есть ReviewType.
У типа ReviewType может быть много отзывов.

У меня естьпроблемы с отображением этого в Entity Framework с использованием Code First Fluent API.Кажется, мне не нравится использовать внешний ключ, который не сопоставляется с Первичным ключом.Я использую внешний ключ для уникального ограничения / индекса вместо первичного ключа.

Как мне правильно отобразить это в Entity Framework, используя C #?

Я должен отметить, что путьЯ делаю это прямо сейчас, дает мне эту ошибку:

System.Data.Edm.EdmAssociationConstraint:: типы всех свойств в зависимой роли ссылочного ограничения должны быть такими же, как и соответствующиетипы собственности в главной роли.Тип свойства 'ReviewTypeCode' в объекте Review 'не соответствует типу свойства' Id 'объекта' ReviewType 'в ссылочном ограничении' ReviewType_Reviews '.

1 Ответ

5 голосов
/ 20 сентября 2011

Текущая версия EF не поддерживает уникальные индексы и не может отображать отношения на основе не первичных уникальных ключей.

...