Unico chiavi non riconosciuti da Entity Framework
-
22-09-2019 - |
Domanda
Ho due tabelle, Reports
e Visualizations
. Reports
ha un campo, VisualizationID
, che punta al campo di Visualization
con lo stesso nome tramite una chiave esterna. Essa ha anche una chiave univoca dichiarato sul campo. VisualizationID
non è annullabile. Ciò significa che il rapporto deve essere 0..1 a 1, poiché ogni scheda Reports
deve avere un unico, non nullo registrare Visualizations
associato.
Entity Framework non la vede in questo modo. Sto ottenendo il seguente errore:
Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.
Qual è il problema? Come posso fare la EF riconosce il corretto rapporto molteplicità?
Soluzione
L'EF si lamenta perché suona come si sta utilizzando un'associazione FK - il che significa che il VisualizationID è una proprietà del soggetto e non v'è un riferimento visualizzazione troppo -. E non è possibile fare questo con FK Associazioni
Se invece si utilizza associazioni indipendenti - il che significa non v'è alcuna proprietà VisualizationID -. possono restringere la cardinalità
Quindi la soluzione è quella di rimuovere la proprietà VisualizationID dal Entità, a questo punto è necessario andare avanti una mappa dell'associazione.
Spero che questo aiuti
Alex
Altri suggerimenti
Ho appena incappato lo stesso problema - Alex, la sua spiegazione è corretta, nel mio caso, ma ovviamente rimuovendo la colonna FK dal modello concettuale, non ho più la possibilità di passare in seguito il mio oggetto correlato cambiando il valore del campo FK ... dovrò tornare ai vecchi trucchi per fare questo!
C'è qualche piani per permettere di avere la nostra torta e la moglie ubriaca da 1 a 0..1 relazioni, vale a dire essere in grado di avere il campo FK pure?
Greg
(P.S. Avrei commentato, ma il mio rappresentante non è abbastanza alto ancora!)