Могут ли представления SQL Server иметь первичные и внешние ключи?
==================================================================

 Можно ли определить первичные и внешние ключи для представлений базы данных в Microsoft SQL Server Management Studio? Как? 

 Я пытаюсь создать модель данных объекта ADO.NET для чтения из четырех старых, плохо сформированных таблиц базы данных, которые я не могу изменить. Я создал вид только тех данных, которые мне нужны. 

 Четыре вида должны отображаться в простой EDMX из трех объектов с одним отношением «многие ко многим». 

 Я получаю эту ошибку при создании моей модели данных: 

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

 Он правильно вывел первичные ключи двух представлений. Но не удалось сделать это с двумя другими. 

 Одно из моих проблемных представлений использует агрегатные функции: 

```
SELECT MAX(...) ... GROUP BY ...

```
  Другой должен иметь составной первичный ключ из двух внешних ключей. 

 Вам необходимо определить свое мнение так, чтобы оно: 

* Включает все столбцы `PRIMARY KEY`
* Не использует `JOIN`
* Не использует какие-либо агрегатные функции или `UNION`

 Любая строка в вашем представлении должна соответствовать ровно одной строке таблицы. 

>  Одно из моих проблемных представлений использует агрегатные функции 
> 
> 

 Это не может быть обновлено. Для объекта только для чтения, решение [**здесь**](http://social.msdn.microsoft.com/Forums/ru-RU/adodotnetentityframework/thread/39fcc904-23b7-45c9-a2c8-7fe7a4a403c4) : 

>  Если никакой ключ не может быть выведен, кодовый комментарий, который содержит соответствующий элемент EntityType (без элементов Key), добавляется в раздел SSDL файла .edmx. 
> 
>  В вашем случае, поскольку кажется, что вы хотите объект только для чтения, вы можете: 
> 
> 1. раскомментируйте сущность SSDL
> 	* пометить одно / несколько свойств как Nullable = "False"
> 	* добавить соответствующие ключевые элементы
> 	* добавить соответствующий определяющий запрос.
> 

 По второму вопросу: 

>  Другой должен иметь составной первичный ключ из двух внешних ключей. 
> 
> 

 Из [**документации**](http://msdn.microsoft.com/en-us/library/bb399596.aspx) : 

>  Таблица, которая представляет отношение «многие ко многим» между двумя таблицами в базе данных, может не иметь эквивалентной сущности в концептуальной схеме. Когда инструменты `EDM` встречают такую таблицу без столбцов, отличных от двух, которые являются внешними ключами, таблица сопоставления представляется в концептуальной схеме как ассоциация «многие ко многим», а не как объект. 
> 
>