6

Sto tentando di utilizzare il Databinding con WPF e Entity Framework.La tabella/vista non ha una chiave primaria definita

Dopo aver aggiunto la sorgente di dati al mio progetto, ho salvato il mio progetto per vedere se tutto va bene fino a quello che ho fatto.

ma ho un 11 avvisate messaggi/informazioni affermando:

La tabella/vista 'MyDataBase.TableName' non ha una chiave primaria definita. La chiave è stata dedotta e la definizione è stata creata come tabella/vista di sola lettura.

ho 14 tavoli dove 4 tavoli ha le proprie chiavi primarie e altri tavoli si riferiscono gli uni agli altri le chiavi esterne utilizzando

Qual è il problema su tutti? Gentile aiuto

risposta

4

Ogni entità in EF deve essere identificabile in modo univoco. EF utilizza le chiavi primarie del database per definire le chiavi di entità. Anche se è possibile lavorare senza chiavi primarie in qualche modo, non è assolutamente consigliato perché porta a molti problemi. Il problema principale è menzionato direttamente nell'errore - se la tabella non ha la chiave primaria, EF la contrassegna come sola lettura perché non è sicuro che possa identificare univocamente il record da aggiornare.

+0

Posso solo superare questo avviso/informazioni quando costruire il mio progetto? o devo prendere qualche altro metodo serio per superare questo problema? –

+0

È solo un avvertimento quindi, a meno che l'installazione del progetto non abbia esito positivo sulla compilazione in fase di avviso, è possibile che sia possibile compilare il progetto. Non sono nemmeno sicuro se gli avvisi di convalida EDMX possano interrompere una build. –

+0

Costruisco la mia applicazione ora, ho solo 11 messaggi visualizzati –

0

In effetti è solo un avvertimento ma non sarà mai possibile utilizzare le funzioni di salvataggio che nel mio caso rendono inutile EF per il DB mal progettato che non riesco a lavorare.

0

è sufficiente eliminare il file EDMX dal progetto. ora vai al tuo database e aggiungi le chiavi primarie a ogni tabella. Successivamente aggiungi nuovo EDMX al tuo progetto. funzionerà bene. e non dimenticare di rimuovere il tag connectionString dal tuo file di configurazione nel progetto.

1

Definire le chiavi primarie nelle tabelle e aggiornare il modello di dati Entity. È possibile farlo dopo aver aperto il modello EF e fare clic con il tasto destro e selezionare l'aggiornamento. Seleziona l'opzione di aggiornamento dalla finestra e convalida il modello.

enter image description here