Определение представления в модели данных сущностей - PullRequest
0 голосов
/ 18 февраля 2011

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

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

предупреждение 6013: таблица / вид 'fmcsa.dbo.vieFMCSADocumentCount' делает не определен первичный ключ и нет допустимый первичный ключ может быть выведен. Эта таблица / представление была исключена. к использовать сущность, вам нужно будет просмотрите свою схему, добавьте правильную ключи и раскомментируйте его.

Вот вид

CREATE VIEW [dbo].[vieFMCSADocumentCount] with SCHEMABINDING
AS
SELECT     COUNT_BIG(*) AS CountOfDocs, ROLE_ID, OWNER_ID
FROM         dbo.FMCSA_DOCUMENT
GROUP BY ROLE_ID, OWNER_ID

тогда я могу добавить ключ

CREATE UNIQUE CLUSTERED INDEX [MainIndex] ON [dbo].[vieFMCSADocumentCount] 
(
    [OWNER_ID] ASC,
    [ROLE_ID] ASC
)

Все еще не работает.

1 Ответ

1 голос
/ 24 февраля 2011

Вы не указали, но я предполагаю, что вы используете EF4.Я сталкивался с этим раньше - вы либо хотите определить ключ вручную, либо отредактировать, заново создать ваше представление WITH SCHEMABINDING и повторно импортировать.

Привязка схемы эффективно указывает SQL для отслеживания зависимостей для вашего представления.Это одновременно и благословение, и проклятие (попробуйте добавить столбец к FMCSA_DOCUMENT, если у этого представления есть привязка схемы), поэтому вы можете захотеть прочитать об эффектах.

CREATE VIEW [dbo].[vieFMCSADocumentCount] WITH SCHEMABINDING
AS 
  SELECT COUNT(ID) AS CountOfDocs, ROLE_ID, OWNER_ID 
  FROM  dbo.FMCSA_DOCUMENT GROUP BY ROLE_ID, OWNER_ID

Поочередно, в модели EFБраузер Перейдите в папку «Типы сущностей», найдите свое представление (щелкните правой кнопкой мыши и выберите «Показать в конструкторе»).Затем в представлении выделите столбцы, содержащие ваш первичный ключ, щелкните правой кнопкой мыши и выберите «Ключ сущности»

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