Utilizzo di byte come tipo di dati della chiave primaria

Sto usando il codice Entity Framework in primo luogo. Ho una tabella che non supererà 100 righe e vorrei usare il byte del tipo di dati ( tinyint in SQL Server) come chiave primaria.

Questo è quello che ho finora:

 [Key] public byte Id { get; set; } 

Il problema si verifica quando Entity Framework crea il database, non sta impostando la proprietà della specifica dell’identity framework che consente alle righe di incrementare automaticamente sull’inserimento.

Se cambio il tipo di dati in Int16 ( smallint in SQL Server) tutto funziona perfettamente.

Esiste un modo per dire a Entity Framework di impostare la proprietà di incremento automatico o un byte non può essere utilizzato come chiave primaria con Entity Framework code-first?

Il tipo di byte è supportato come chiave e come colonna di id quadro. Non è solo l’impostazione predefinita per contrassegnare la chiave primaria del byte come identity framework. Ma puoi sovrascrivere questo valore predefinito:

 [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public byte Id { get; set; } 

L’impostazione dell’opzione Identity esplicito non è necessaria per un int , un long e un short (e forse più tipi?), Ma è per un byte (= tinyint in SQL Server). L’ho capito testando, ma non sono riuscito a trovarlo ufficialmente documentato da nessuna parte.