Sono nuovo in EF e provo a fare i primi passi con il primo approccio al codice in ETF6.0 e ora ho un problema.Come utilizzare la proprietà String come chiave primaria in Entity Framework
Ho un immobile
[Key]
public string FooId { get; set; }
che è la mia chiave primaria per il modello.
Ma se faccio funzionare l'ordine
PM> Update-Database
in consolle gestore di pacchetti per aggiornare in attesa migrazioni al database ottengo il seguente errore:
Identity column 'FooId' must be of data type int, bigint, smallint, tinyint, or decimal or numeric with a scale of 0, and constrained to be nonnullable.
Se cambio la PK nel mio modello di
[Key]
public int FooId { get; set; }
tutto funziona correttamente.
Ma avrei bisogno che il PK fosse di tipo stringa perché è assolutamente sensato nel mio caso. So che ci sono degli svantaggi ma per me è necessario.
Ho visto un post più vecchio qui How to make string as primary key in entity framework!.
Ma sembra che non risolva il mio problema o semplicemente non lo capisco.
È davvero che non è possibile utilizzare una stringa come PK su un database SQL?
O c'è un modo per farlo?
La chiave è in default per l'identità, quindi è necessario disattivare lo dall'attributo '[DatabaseGenerated (DatabaseGeneratedOption.None)] 'Ciò significa che è necessario specificare la chiave manualmente durante l'aggiunta (non viene generata). – Hopeless