2011-09-06 18 views
12

Sto utilizzando ADO .NET Entity Framework per importare il mio modello da un database. Una tabella nel mio db ha un mazzo di chiavi esterne, tutte con nomi astratti per es. FKDevice132610.Nomi significativi per le proprietà di navigazione con Entity Framework

Quando importare la tabella nel mio modello, introduce proprietà di navigazione per ogni chiave esterna, tuttavia vengono importate con nomi basati sul nome della tabella a cui si collegano. Se è presente più di una chiave esterna in una determinata tabella, alla fine viene aggiunto un numero.

Ef model

In questo caso è Devices1 ParentDevices e Devices2 è ChildDevices. C'è un modo per inserire queste informazioni nella mia chiave esterna (ad esempio usando la descrizione o il nome) in modo che Entity Framework importerà nomi significativi per le mie proprietà di navigazione?

risposta

5

Come so che attualmente non c'è modo di farlo. Ecco come funziona il designer attuale. Ciò che è ancora peggio quando si rinomina queste proprietà per correggere nomi che aggiornano il modello dal database a volte sovrascriverà le modifiche.

Miglioramento delle proprietà di navigazione denominazione è monitorata da questo elemento di lavoro - http://entityframework.codeplex.com/workitem/125

+3

Questo è zoppo ... stupido EF :( – link664

+3

In questo caso non è un fallimento di EF. È un fallimento del progettista - puoi usare EF senza designer usando il primo approccio del codice o se vuoi ottenere il meglio da EF di scrivere manualmente la mappatura XML. –

0

Chiedersi se una ricerca su "modelBuilder.Conventions.Remove" ti porterà a una soluzione. Vorrei poter essere più di aiuto, ma sto appena iniziando ad esplorare EF. Sono andato in una situazione simile quando avevo più campi che si riferivano allo stesso ID ... e non ricordo quale fosse il problema.

+0

Il costruttore e il progettista del modello non hanno nulla in comune. Queste due caratteristiche sono utilizzate in scenari completamente diversi. –

0

Quattro anni più tardi ...
Fino a quando la squadra EF risolve this issue, una possibile soluzione potrebbe essere quella di analizzare il file .edmx utilizzando uno strumento esterno e sostituire tutti i testi che iniziano con <NavigationProperty Name= con nomi di navigazione più significativi.
Essendo XML, è estremamente facile analizzare e trovare proprietà come molteplicità, nome FK, ecc.

Problemi correlati