Se sei nuovo di EF e, a partire da EF4, la semplice risposta è ignorata: quasi certamente utilizzerai le associazioni di chiavi esterne anziché le associazioni indipendenti.
Un'associazione chiave esterna è supportata da una relazione di chiave esterna nel database e questa relazione è esplicitamente descritta nel modello concettuale. Questo tipo di associazione è nuova per EF4 e capisco che è una concessione che segue i problemi che le persone hanno avuto con le associazioni indipendenti.
Strettamente se si desidera separare lo schema di archiviazione e lo schema concettuale (che è il tipo di punto EF) non si vuole che lo schema concettuale sappia cose come le chiavi esterne in quanto si tratta di un database (ad es.) concetto. Le versioni precedenti di EF seguivano questo approccio e abbiamo questa cosa chiamata Associazione Indipendente.
Pensare alle associazioni indipendenti come associazioni tracciate da EF senza la conoscenza della chiave esterna sottostante. EF lo supporta ancora, ma ha delle debolezze significative.
EF4 in VS2010 utilizzerà le chiavi esterne e creerà relazioni con le chiavi esterne a meno che non le dica diversamente. Nel complesso questi lavori come ti aspetteresti. Ci sono ancora alcuni trucchi - ad es. intorno alle eliminazioni a cascata.
Se volete saperne di EF - posso raccomandare questo libro:
http://learnentityframework.com/learnentityframework/
Tutto quello che volete sapere, molto chiaramente spiegato.
fonte
2011-01-16 02:17:08
Okeedoke. Ma quali sono specificamente i problemi causati da n-tier e concorrenza? – anon
Bene, la differenza principale oltre alla differenza dello schema è che un'entità con un'associazione indipendente non espone la chiave esterna nel livello concettuale. L'associazione viene mantenuta in un oggetto separato. A seconda di come si progetta l'applicazione, è più complesso passare queste informazioni aggiuntive tra i livelli. Le associazioni di chiavi estranee sono molto più facili da utilizzare poiché è possibile impostare la chiave esterna direttamente sull'entità o modificare l'entità/entità entità esposte correlate. –
"Meno facile lavorare con" nella mia mente non significa necessariamente "evitare". Quest'ultimo suggerisce che ci sono specifiche insidie. Ci sono articoli là fuori su queste trappole? (Ho il libro di Julia Lerman, BTW.) – anon