martedì 19 aprile 2022

The entity type 'name table' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'. For more information on keyless entity types

Durante lo sviluppo di applicazioni gestionali, con il quale si usa Entity Framework, può accadere che venga generato il seguente errore: 

"
The entity type ' Name Table' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'. For more information on keyless entity types
"

Dove il "Name Table" è il nome dell'oggetto, o meglio della classe che rappresenta la tabella al quale vogliamo gestire i dati.
Questo errore è dovuto perchè nella classe non è presente un campo chiave, per risolvere tale problema, occorre mettere nella dichiarazione della classe, l'attributo "[Keyless]"  presente nello spazio dei nomi using System.ComponentModel.DataAnnotations; .


La classe sarà dichiarata in questo modo:

[Keyless]
    public class NomeClasse
{
    //codice

}

In alternativa dichiarare una proprietà di chiave primaria.

Nessun commento: