Как добавить ассоциацию EF6 к ключу-кандидату / уникальному ключу, который не является первичным ключом?

С помощьюСхема перваяУ меня есть структура базы данных, так что

ExternalDataItems
---
edataitem_id   PK -- surrogate auto-increment - NOT for FK relation here
datahash       UX -- Candidate Key / Unique Index (binary(20))

ExternalMaps
---
emap_id        PK
ext_datahash   FK on ExternalDataItems.datahash - NOT referencing the surrogate PK

и после генерации SSDL / CSDL1 имеет это

    <Association Name="FK_ExtMaps_ExtDataItems">
      <End Multiplicity="1" Role="ExternalDataItems" Type="Store.ExternalDataItems" />
      <End Multiplicity="*" Role="ExternalMaps" Type="Store.ExternalMaps" />
      <ReferentialConstraint> <!-- error on this element -->
        <Principal Role="ExternalDataItems">
          <PropertyRef Name="datahash" />
        </Principal>
        <Dependent Role="ExternalMaps">
          <PropertyRef Name="ext_datahash" />
        </Dependent>
      </ReferentialConstraint>
    </Association>

который генерирует ошибку на<ReferentialConstraint> элемент

Выполнение преобразования: свойства, на которые ссылается основная роль ExternalDataItems, должны быть точно идентичны ключу EntityType ExternalDataItem, на который ссылается основная роль в ограничении отношений для Relationship FK_ExtMaps_ExtDataItems. Убедитесь, что все ключевые свойства указаны в главной роли.

«Основная роль» (?) Для SSDL ExternalDataItems выглядит следующим образом для PK, и UX, по-видимому, отсутствует2, кроме как в качестве простого скалярного свойства:

  <EntityType Name="ExternalDataItems">
      <Key>
        <PropertyRef Name="edataitem_id" />
      </Key>
      ..
      <Property Name="datahash" Type="binary" MaxLength="20" Nullable="false" />
  </EntityType>

Как я могу добавить это отношение - используя FK к ключу-кандидату не PK? (После того, как это «сработает», я также хочу иметь свойство навигации в CSDL.)

Кроме того, линия связи не отображается в области проектирования - что, я подозреваю, является просто следствием этой ошибки. Я использую Entity Framework версии 6.1.1 (последняя опубликована в nuget) и Visual Studio 2013 Ultimate Update 4.

1Стандартный EDMX «Обновление из базы данных», по-видимому, не воспринимал эти отношения FK (которыеможет быть связано с этой ошибкой) и приведенные выше результаты получены после использования инструмента Huagati DBML / EDMX. Если бы я попытался «Добавить ассоциацию» до этого, дизайнер неправильно попытался бы использовать первичный ключ - который не поддерживается ни одним отношением FK - и не предоставлял варианты выбора альтернативных свойств.

2Попытка добавить<UniqueConstraint> элемент, как описано в«Уникальные ограничения в Entity Framework» приводит к дружественной ошибке проверки XML:

Элемент 'ElementType' .. имеет недопустимый дочерний элемент 'UniqueConstraint'.

Ответы на вопрос(1)

Ваш ответ на вопрос