2010-04-27 16 views
7

Mi chiedevo se l'EF4 supporta le relazioni cross-database? Per esempio:Relazioni database cross EF4

DB1

Author 
    Id 
    Name 

DB2

Posts 
    Id 
    Content 
    db1.Author.Id 

Quello che idealmente devo fare per ottenere questo rapporto nel mio modello EF4?

Avete qualche idea?

Grazie

risposta

3

Recentemente ho iniziato un progetto che utilizza Entity Framework con due database, uno di Oracle e uno SQL Server. Non sono riuscito a trovare alcuna informazione sul cross-database o sul supporto di più database nel framework di entità.

La maggior parte dei post del team del framework MS Entity ha un paio d'anni e indica che l'inclusione di due database in un singolo modello non è una funzionalità che verrà inclusa a breve. Sarei interessato ad avere una risposta concreta sul fatto che sia stato incluso nel 2010 anche se sospetto che la risposta sia no.

Attualmente il progetto supera questa limitazione disponendo di un modello di entità separato per ciascun database. Questo ha risolto il problema per la maggior parte degli scenari che abbiamo incontrato finora nel progetto.

Nei casi in cui è necessario interrogare i dati dai due database contemporaneamente, abbiamo semplicemente creato una vista in uno o negli altri database. Poiché utilizziamo Oracle e SQL Server, questa visualizzazione utilizza un server collegato (SQL) o un DBLink (Oracle).

Lo svantaggio delle visualizzazioni nel framework entità è che abbiamo dovuto trascorrere più tempo di quanto mi aspettassi facendo funzionare le chiavi primarie.

Spero che questo aiuti.

4

Se il database supporta Sinonimi, si può ingannare EF per estendersi su più database. Ho scritto come farlo here.

Fondamentalmente si finisce con un file edmx per database e uno script che li unisce in un singolo file edmx. I sinonimi sono utilizzati per fare riferimento a un database da un altro utilizzando il nome effettivo della tabella, pertanto EF non esegue il fitting quando si tenta di accedere a database2.table dal database1. È ancora necessario impostare manualmente i collegamenti tra i due database nel modello EF, ma una volta impostati rimarranno anche se si esegue nuovamente lo script di unione.

script per l'installazione Sinonimi e per unire i file EDMX sono pubblicati nel link

+0

vi consiglio di votare il mio suggerimento UserVoice qui: http://visualstudio.uservoice.com/forums/121579-visual-studio/ suggerimenti/2730532-make-entity-framework-designer-support-sinonimi Se siamo in grado di ottenere il supporto del sinonimo nel designer, allora è tutto facile-pisello. Inoltre, incoraggi chiunque altro a trovare chi è interessato al supporto tra database per votare a favore. –

Problemi correlati