2010-02-02 11 views
9

Ho un modello Entity Framework che è stato generato dalla procedura guidata di Visual Studio 2008 in base a un database Sql Server 2008.Come creare una relazione tra tabella e vista in Entity Framework

Il modello ha una vista che viene unita logicamente in una relazione molti-a-molti con un'altra tabella tramite una tabella di join (applicata nel database da un trigger di inserimento/aggiornamento). Entrambe le tabelle e la vista fanno parte del modello, ma poiché non è possibile avere un vincolo di chiave esterna su una vista, non ha la relazione tra la vista e la tabella di join.

È possibile creare una relazione nel modello Entity Framework per questo collegamento tra la tabella di join e la vista?

Grazie per qualsiasi aiuto.

risposta

16

Sì, è possibile farlo, ma il progettista della GUI non sarà in grado di dedurlo per voi.

La prima cosa che occorre fare è configure the view correctly. Il progettista non può dedurre la chiave primaria, quindi sarà necessario fornire tali informazioni.

È ora possibile fare clic con il pulsante destro del mouse nello spazio vuoto nella finestra di progettazione e quindi scegliere di aggiungere un'associazione. Definire l'associazione tra vista e tabella, impostando correttamente la cardinalità.

In EF 1, sarà necessario rimuovere i campi FK dallo schema client selezionandoli nella finestra di progettazione e premendo Elimina. Questo perché, in EF 1, non è possibile avere lo stesso campo associato a un'associazione ea una proprietà scalare. In EF 4, puoi mantenere i campi FK se usi le associazioni FK, oppure puoi usare associazioni indipendenti che si comportano come EF 1.

+0

molto apprezzato. – Sako73

+3

Molto utile, nel mio caso ho anche dovuto impostare il vincolo referenziale nelle proprietà dell'associazione (EF 5). –

Problemi correlati