2013-03-24 13 views

risposta

77

Entrambe le mappature creeranno esattamente lo stesso schema di database con un non-nullable estera chiave SomethingId e un vincolo referenziale tra le due tabelle correlate.

La prima mappatura con MapKey viene utilizzata quando non si desidera avere la chiave esterna come proprietà nella classe del modello. Il tipo di associazione in questo caso è chiamato Associazione indipendente. Si applica la seconda mappatura con HasForeignKey quando la chiave esterna è una proprietà nel modello. Questo tipo è chiamato Foreign Key Association.

In molti scenari è più facile lavorare con le associazioni di chiavi esterne, ma molte persone considerano meno pulito avere un artefatto relazionale (una chiave estranea) nel mondo degli oggetti e preferire quindi Associazioni indipendenti.

Ecco alcuni riferimenti circa i due tipi di associazioni ed i loro pro e contro:

+0

"Molte persone pensano che un object-relational mapping si suppone che lo strumento risolva il disadattamento dell'impedenza relazionale dell'oggetto piuttosto che forzarlo o addirittura incoraggiarlo a rendere il proprio modello oggetto come se fosse d espressamente specificati sul modo in cui i dati vengono mantenuti ". Ecco, l'ho sistemato per te. –