supponiamo che abbiamo questa situazione:Entity Framework (Database-First) molteplici relazioni a convenzioni di denominazione stessa tabella di controllo
tabelle nel database:
Country (id, country_name), Person (id, login), CountryManager (id_country, id_person), CountryStakeholder (id_country, id_person)
Se abbiamo dovuto creare il modello dal database, utilizzando Entity Framework Database-First, in VS avremmo una classe come questo:
class Country {
int id;
string country_name;
virtual ICollection<Person> Person1; // Navigation Properties
virtual ICollection<Person> Person2; // ---------||----------
}
Ho semplificato molto il codice, ma spero che tu abbia capito il punto.
Sembra che quando Entity Framework si occupa di chiavi esterne crea proprietà di navigazione generiche. C'è la possibilità di controllare come vengono create le proprietà di navigazione per nome? Person1, Person2 non è molto esplicativo, sfortunatamente.
Personalmente, preferisco utilizzare la metodologia Database-First. E ho avuto molto successo usandolo. Tuttavia, impongo una convenzione di denominazione rigida all'interno dei miei database. Ho uno script di utilità che ripple attraverso il database e rinominare le mie chiavi esterne per abbinare la mia convenzione di denominazione. Quando gli FK arrivano all'EDMX, i loro nomi hanno davvero un senso. Pertanto, l'EDMX ha senso, e le T4 arrivano a generare codice che abbia senso. –
Puoi condividere lo script? Penso che sarebbe l'opzione più vicina alla soluzione –
@AdrianK. Hai trovato una soluzione per questo? – Lijo