Подтвердить что ты не робот

Представления и структура сущностей

Я создал представление в своей базе данных, которое хотел бы включить в мою модель сущности. Однако, когда я пытаюсь обновить модель сущности через VS 2008, предупреждающее сообщение сообщает мне, что ТАБЛИЦА ИЛИ ПРОСМОТР, которые я пытаюсь добавить, не имеет первичного ключа.

Кажется, что для добавления представления к модели это должно иметь ключевое поле! Как я могу добавить это представление в свою модель, если представлениям не разрешено иметь ключевое поле, по крайней мере, в firebird, который используется в DBMRS Im.

Любая идея о том, как решить эту проблему?

4b9b3361

Ответ 1

Здесь есть отличный ответ: Entity Framework и представление SQL Server (см. принятый ответ: fooobar.com/questions/49947/....)

EF отображает PK для просмотров, объединяя все поля, не подлежащие обнулению. Вы можете использовать ISNULL и NULLIF для управления нулевыми значениями столбцов представления, тем самым вынуждая EF выбрать требуемый ПК.

Ответ 2

В представлениях firebird нет ключей. Вместо этого установите одно (или большее) поле как "не null" с помощью следующей команды:

update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'A_FIELD') and (RDB$RELATION_NAME = 'A_VIEW')

Затем повторно импортируйте базу данных в инфраструктуру сущности.