Ho avuto questo problema per oltre una settimana, e so che ci sono molte domande a riguardo, ma non ne ho visto uno che utilizza Oracle. Utilizzo il database EF in primo luogo, ho bisogno di creare un'entità da una vista Oracle e, a causa della restrizione "È necessario definire una chiave primaria", EF non me lo consente.
Messaggi che ho ottenuto:
Lavoro in giro ho provato:
Modifica de .edmx e aggiungi me stesso la chiave primaria. RISULTATO: Il framework dirà "Quella colonna è annullabile, non possiamo accettarla"
Modifica la mia vista usando la seguente sintassi:
CREATE OR REPLACE FORCE VIEW SCHEMA.MY_VIEW
(COLUMN, FIELD1, FIELD2, FIELD3)
AS
SELECT
NVL(ROW_NUMBER() OVER(ORDER BY FIELD1), 0) AS COLUMN
, FIELD1
, FIELD2
, FIELD3
WITH READ ONLY;
ALTER VIEW SCHEMA.MY_VIEW
ADD CONSTRAINT MY_VIEW_PK
PRIMARY KEY
(CODIGO_MONEDA)
RELY
DISABLE;
Ho provato molte versioni della query sopra, aggiungendo NVL al campo degli altri, creando una chiave primaria. Non riesco a farlo funzionare.
sfortunatamente penso che non ci sia una soluzione. Mi sono lamentato per questo dall'inizio di quest'anno, l'EF Team ha riconosciuto che si tratta di un bug ma nel bel mezzo dell'anno hanno tagliato tutti i bug fix per EF6 per sviluppare EF Core. Vedi questo link: http://entityframework.codeplex.com/workitem/2888
In realtà, il problema è nel designer. Presumo che tu stia usando Visual Studio 2015; è per questo che stiamo ancora utilizzando Visual Studio 2012 con EF 6.1.3.
Non possiamo migrare a Visual Studio 2015 senza una correzione.
Sono molto sorpreso che non così tante persone si sono lamentati per questo. È solo un punto critico per i progetti .NET con database Oracle.
Saluti