Можно ли определить первичные и внешние ключи для представлений базы данных в Microsoft SQL Server Management Studio? Как?
Я пытаюсь создать модель данных объекта ADO.NET для чтения из четырех старых, плохо сформированных таблиц базы данных, которые я не могу изменить. Я создал вид только тех данных, которые мне нужны.
Четыре вида должны отображаться в простой EDMX из трех объектов с одним отношением «многие ко многим».
Я получаю эту ошибку при создании моей модели данных:
Для таблицы / представления '...' не определен первичный ключ, и не может быть выведен действительный первичный ключ. Эта таблица / представление была исключена. Чтобы использовать сущность, вам необходимо просмотреть свою схему, добавить правильные ключи и раскомментировать ее.
Он правильно вывел первичные ключи двух представлений. Но не удалось сделать это с двумя другими.
Одно из моих проблемных представлений использует агрегатные функции:
SELECT MAX(...) ... GROUP BY ...
Другой должен иметь составной первичный ключ из двух внешних ключей.
Вам необходимо определить свое мнение так, чтобы оно:
PRIMARY KEY
JOIN
UNION
Любая строка в вашем представлении должна соответствовать ровно одной строке таблицы.
Одно из моих проблемных представлений использует агрегатные функции
Это не может быть обновлено. Для объекта только для чтения, решение здесь :
Если никакой ключ не может быть выведен, кодовый комментарий, который содержит соответствующий элемент EntityType (без элементов Key), добавляется в раздел SSDL файла .edmx.
В вашем случае, поскольку кажется, что вы хотите объект только для чтения, вы можете:
- раскомментируйте сущность SSDL
- пометить одно / несколько свойств как Nullable = "False"
- добавить соответствующие ключевые элементы
- добавить соответствующий определяющий запрос.
По второму вопросу:
Другой должен иметь составной первичный ключ из двух внешних ключей.
Из документации :
Таблица, которая представляет отношение «многие ко многим» между двумя таблицами в базе данных, может не иметь эквивалентной сущности в концептуальной схеме. Когда инструменты
EDM
встречают такую таблицу без столбцов, отличных от двух, которые являются внешними ключами, таблица сопоставления представляется в концептуальной схеме как ассоциация «многие ко многим», а не как объект.