EntityFramework Core limita l'utilizzo di KeyAttribute per la definizione di chiavi composite. Ma qual è la ragione di questa limitazione? Ho trovato una soluzione per questo senza usare Fluent api.
Secondo questo numero di GitHub , è nel backlog che deve essere implementato nella prossima versione di EF Core. E da questo numero di GitHub , ecco la spiegazione che stavi cercando:
Il motivo è che ha utilizzato una combinazione di chiave e colonna per l'ordinamento, ma l'ordinamento delle colonne non è la stessa cosa dell'ordinamento delle chiavi, e quindi questo ha causato confusione e problemi in EF6. Anche la modifica delle annotazioni di dati esistenti è costosa a causa della loro relazione con .NET Core e .NET Framework.
Tuttavia, vediamo il valore nel riuscire a questa e altre configurazioni comuni utilizzando gli attributi, poiché il salto all'API fluente può essere notevole. Pertanto, esamineremo la creazione di una nuova libreria / pacchetto con nuovi attributi di configurazione EF aggiuntivi che possono essere utilizzati insieme alle annotazioni dei dati. Questa sarebbe una delle cose che verrebbero implementate lì.
Tuttavia, secondo questo annuncio , da ASP.NET Core 3.0 è possibile utilizzare tutte le funzionalità di EF 6.x con ASP.NET Core in quanto ci sarà EF 6.3 su .NET Core> = 3.0