Problemi di mapping One-To-One di Entity Framework

entity-framework

Domanda

Utilizzo di VS 2010 beta 2, ASP.NET MVC.

Ho provato a creare un file framework Entity e ho ottenuto i dati dal mio database.

Ci sono stati alcuni problemi con le relazioni, quindi ho iniziato a modificare le cose, ma ho continuato a ottenere il seguente errore per le relazioni uno-a-uno

Errore 1 Errore 113: la molteplicità non è valida nel ruolo "Profilo utente" nella relazione "FK_UserProfiles_Users". Poiché le proprietà del ruolo dipendente non sono le proprietà chiave, il limite superiore della molteplicità del ruolo dipendente deve essere *. myEntities.edmx 2024

La tabella I miei utenti è costituita da altre relazioni molti-a-molti ad altre tabelle, ma quando provo a stabilire una relazione uno-a-uno con altre tabelle, viene visualizzato l'errore.

Tabella utenti

  • ID utente
  • Nome utente
  • E-mail

eccetera..

Tabella dei profili utente

  • UserProfileID
  • UserID (FK per tabella utenti)
  • Posizione
  • Compleanno

Risposta accettata

Per le relazioni uno-a-uno, EF si aspetta che le tabelle utilizzino la stessa chiave primaria. E davvero, se è un vero one-to-one probabilmente dovrebbero . Quindi, nel tuo esempio, se rendi UserID la chiave primaria nella tabella UserProfiles, il tuo lavoro individuale funzionerà.


Risposta popolare

Ho un problema simile, ma con uno scenario di vendita e lay-out.

Un layby può esistere senza una vendita, e una vendita può esistere senza un layby. Ciò significa che ho una relazione 0 o 1 a 0 o 1 .

Vendita di riferimenti Layby, ma la modalità di attesa non può utilizzare la chiave primaria di vendita e Sale non può utilizzare la chiave primaria di Layby.

Ho risolto il problema usando una relazione da 0 o 1 a molti , ho configurato il getter e setter 'Laybys' sulla vendita come privato, e poi ho fornito il mio getter e setter 'Layby' nel mio POCO.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché