Как добавить первичный ключ в представление SQL? - Или альтернативный способ связать представления с LINQ-2-Entities - PullRequest
10 голосов
/ 30 ноября 2009

Я добавляю очень простое представление (или пытаюсь) в мою объектную модель сущностей. База данных находится в SQL Server 2008. Я на .Net 3.5 (SP1) с использованием C #.

Представление имеет два поля: color и colorcount, Varchar (50) и count (*) соответственно.

Когда я делаю Обновление модели из базы данных и выбираю представление для добавления, оно запускается (оно обновляет таблицы, добавляя поля без проблем), но не добавляет представление. Не отображаются ошибки, предупреждения или сообщения.

Когда я открываю файл .edmx, я вижу, что он показывает Warning 6013: No primary key defined.

Представление сложное, и я бы не стал переводить его в запрос LINQ. Как добавить первичный ключ, чтобы сущности поддерживали представление?

Есть ли нехарактерный способ добавить подобное представление в EDMX?

Ответы [ 2 ]

23 голосов
/ 25 января 2010

После создания представления с использованием schemabinding вы можете добавить к нему первичный ключ:

CREATE VIEW Colors WITH SCHEMABINDING
AS SELECT Color='yellow', ColorCount=100
GO
CREATE UNIQUE CLUSTERED INDEX PK_Colors ON Colors (Color)
1 голос
/ 30 ноября 2009

Не знаю, поможет ли это вам, но вы можете создать первичный ключ, используя табличную функцию с несколькими операторами .

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

СОЗДАТЬ ФУНКЦИЮ (Transact-SQL)

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