Qual è il codice della convenzione di denominazione ID predefinito EF prima?

Sto usando il primo approccio al codice EF. Ho iniziato a creare file di mapping (provengo da sfondo nihbernate) ma ho scoperto che non ne hai davvero bisogno a meno che non sia necessario apportare alcune modifiche.

Mi chiedo che cosa utilizzerà per la convenzione di denominazione dei miei Id’s?

Sarà Product_Id o ProductId ?

modificare

Sulla base dei commenti finora mi lascia un po ‘perplesso. Mi stavo chiedendo perché ho aggiunto 2 nuove classi (cioè le tabelle) e le ho collegate e ricreato il mio database.

Entrambi i FK nei miei tavoli che hanno una relazione con le mie nuove tabelle hanno tutti “ID_Prodotto” e ho pensato che forse era perché non avevo alcuna mapping per questo.

Ho appena provato a utilizzare la mapping e lo stesso problema.

Tutte le altre relazioni sulle tabelle hanno il caso superiore di Camel.

Modifica 2

Hmm sta succedendo qualcosa di strano ha lo stesso nome due volte nel mio tavolo. Una volta lo tratta come un FK e un’altra volta lo tratta come una normale colonna.

Modifica 3

Capito, parlarne e postare qui mi aiuta a isolare il problema. Il motivo era perché stavo facendo il poco

 public Product Product {get; set;} public Guid ProductId { get; set; } 

Ora rilascio il mio ProductId che ho impostato come un tipo di int, quindi quello che stava succedendo sarebbe stato generare una colonna denominata ProductId nel db e poi quando ha avuto il tempo di creare l’FK non poteva più usare ProductId e ha dovuto usare Product_Id

Per impostazione predefinita, IdKeyDiscoveryConvention è registrato e in base alla relativa documentazione :

Il rilevamento della chiave primaria non fa distinzione tra maiuscole e minuscole. I modelli di denominazione riconosciuti sono, in ordine di precedenza:

‘Id’

[nome tipo] Id

È ansible utilizzare ProductId o Id e verrà riconosciuto come chiave primaria dalle convenzioni di denominazione di Entity Framework.

Puoi anche utilizzare l’annotazione dei dati Key se vuoi interrompere la convenzione.

 [Key] public int Product_Id {get;set;} //Note the underscore 

Puoi anche utilizzare l’API Fluent:

 modelBuilder.Entity().HasKey(t => t.Product_Id); //Breaking convention again!