Модель данных сущностей - Добавление таблицы без ключей - PullRequest
4 голосов
/ 29 июня 2011

Visual studio дает мне список ошибок, которые я зашел в тупик.Я пытаюсь добавить существующую таблицу в базе данных в мою модель данных.Я понимаю, что у таблицы должен быть ключ, но его нет, и я не могу это исправить;это не моя база данных для перепроектирования.

Когда я впервые пытаюсь добавить таблицу, я получаю эту ошибку:

Таблица / представление 'BT8_GC.dbo.SAVED_QUERY_CATEGORY'не определен первичный ключ и не может быть выведен действительный первичный ключ.Эта таблица / представление была исключена.Чтобы использовать сущность, вам необходимо просмотреть схему, добавить правильные ключи и раскомментировать ее.

Хорошо, хорошо, я определю ключи для нее и раскомментирую.Вот блок, который я раскомментировал, после определения ключей вручную (мне также пришлось добавить часть nullable = false):

      <EntityType Name="SAVED_QUERY_CATEGORY">
    <Key>
      <PropertyRef Name="SQC_CAT_ID"/>
      <PropertyRef Name="SQC_USER_ID"/>
    </Key>
    <Property Name="SQC_CAT_ID" Type="int" Nullable="false" />
    <Property Name="SQC_USER_ID" Type="int" Nullable="false" />
    <Property Name="SQC_CAT_DSCR" Type="varchar" MaxLength="50" />
    <Property Name="SQC_SEQ_NO" Type="int" />
  </EntityType>

Нет, теперь дизайнер не открывается.Вернитесь в файл, и Intellisense отобразит эту ошибку:

Ошибка 11002. Тип объекта 'SAVED_QUERY_CATEGORY' не имеет установленного объекта.

Ok ... При комментировании создан объектновая ошибка.После добавления сущности установите:

<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />

Yay!Конструктор открывается!Пока еще нет, поскольку, хотя он отображается в папке «Таблицы / Представления» в магазине, он не имеет Тип сущности в модели.Не могу позвонить из моего кода.У меня нет ошибок, чтобы работать, хотя, поэтому я попытался создать сопоставление наборов сущностей, но это приводит к ошибке "не существует в MetadataWorkspace".

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

1 Ответ

2 голосов
/ 30 июня 2011

Изменяя XML, вы только добавили информацию о таблице базы данных. Теперь вам нужно открыть панель инструментов и добавить сущность к вашей модели в конструкторе. Сконфигурируйте сущность, чтобы иметь свойства, которые вам нужны. Затем откройте детали отображения и сопоставьте новую сущность с вашей таблицей.

Btw. как только вы измените базу данных с описанием XML вручную, вы больше не сможете использовать обновление из базы данных - VS designer всегда удалит ваши изменения, и вам придется делать их снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...