Добавить идентификатор для просмотра, который указывает на внешнюю схему - PullRequest
0 голосов
/ 06 июня 2019

У меня довольно простое представление в следующем виде:

CREATE OR REPLACE VIEW VW_SOME_VIEW (SomeColumn, AnotherColumn, YetAnotherColumn)
AS
SELECT f.SomeColumn, f.AnotherColumn, f.YetAnotherColumn 
FROM SOME_VIEW @ SOMEURL.COM f;

По какой-то причине внешнее представление не включает в себя PK, который проблематичен с EF в сочетании с Oracle (в этом каждый объекттребуется столбец ID).

Теперь, для моих целей, мне не нужно ссылаться на какой-либо PK или ID, поэтому поле в Entity не должно иметь «правильных» данных.

Я пробовал несколько разных вещей с помощью View для имитации этого столбца.Что-то вроде:

CREATE OR REPLACE VIEW VW_SOME_VIEW (ID, SomeColumn, AnotherColumn, YetAnotherColumn) 
AS
SELECT 0 AS "ID", f.SomeColumn, AnotherColumn, YetAnotherColumn
FROM EXTERNAL_VIEW @ SOMEURL.COM f;

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

* 1014.* Edit - вот более или менее класс сущности я пытаюсь построить (ID является единственным спорным полем): 1017 *

1 Ответ

1 голос
/ 06 июня 2019

Используйте псевдостолбец ROWNUM:

CREATE OR REPLACE VIEW VW_SOME_VIEW (ID, SomeColumn, AnotherColumn, YetAnotherColumn) 
AS
SELECT ROWNUM AS "ID", f.SomeColumn, AnotherColumn, YetAnotherColumn
FROM EXTERNAL_VIEW @ SOMEURL.COM f;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...