Это может быть связано с моей other question - который, кажется, что либо:Как получить EF6 в честь уникального ограничения (на FK) в объединении/множественности отношений?
Entity Framework является ужасны Реляционная алгебра картографа или;
(на что я надеюсь) Я пропускаю что-то с SSDL/CSDL и EDMX-моделью или EF-сопоставлениями в целом.
У меня есть схема Первой модели и схема выглядит следующим образом:
ExternalMaps
---
emap_id - PK
Melds
---
meld_id - PK
emap_id - >>UNIQUE INDEX<< over not-null column, FK to ExternalMaps.emap_id
Для проверки, эти сценария как следующий, который должен результата во множестве ExternalMaps:1 <-> 0..1:Melds
.
ALTER TABLE [dbo].[Melds] WITH CHECK ADD CONSTRAINT [FK_Melds_ExternalMaps]
FOREIGN KEY([emap_id]) REFERENCES [dbo].[ExternalMaps] ([emap_id])
CREATE UNIQUE NONCLUSTERED INDEX [IX_Melds] ON [dbo].[Melds] ([emap_id] ASC)
Однако, когда я использую конструктор EDMX для обновления из базы данных (SQL Server 2012), с нуля, это неправильно создает/внешний ключ отношение ассоциации, как ExternalMap:1 <-> M:Meld
.
Когда я пытаюсь изменить кратность вручную для Meld (с помощью свойств «Set Association» в дизайнере) сторону либо 1
или 0..1
, я получаю:
Запуск преобразования: Кратность не действует в роли «Meld» в отношении «FK_Melds_ExternalMaps». Поскольку свойства зависимой роли не являются ключевыми свойствами, верхняя граница множественности зависимой роли должна быть
*
.
(Как и с моим другим вопросом, это, кажется, связан с ограничениями уникальностей не быть правильно зарегистрировано/почитаются как Кандидаты Кис.)
Как я могу получить EF в честь 1 <-> 0..1/1
кратность , как установлено моделью?
Хотя я надеюсь, что это не так, я не имею никакого конца мучению при попытке получить EF для отображения на отлично действующей модели RA: LINQ к SQL (L2S) делает не есть эта проблема. Поскольку мой другой вопрос не получил тривиального ответа за такой популярный ORM, я теряю веру в этот инструмент.
По дизайну FK не является другим: «Хотя у него не должно быть нулевых внешних ключей». - Также не случай, что это «общий» ПК, так как этот answer from 2009 предлагает в качестве исправления.
Я использую EF 6.1.1, VS 2013 Ultimate, и am не будет использовать любые функции OO подтипа - если это что-то изменит.
EDIT Вздох:
Multiplicity is not valid because the Dependent Role properties are not the key properties? (с 2011 года) - это еще случай для EF "Microsoft-одобренным Enterprise готовый" ОРМ в 2015?
На этом показателе в следующий раз кто-то спрашивает, почему EF не использовали я большой набор отличных «LINQ к SQL работает просто отлично» причины ..
Когда вы удаляете ограничение уникальности ... он генерирует для вас правильную базу данных/модель? –
@YoupTube Кажется, что создается такая же модель - только на этот раз модель действительно правильная. схема из-за отсутствия UX в базе данных (но затем она нарушает правила данных RI). Я убедился, что редактирую правильную базу данных, изменив имя столбца, которое произошло правильно. – user2864740
И хотя это слабый подход, добавление UX вручную впоследствии ??? –