Ciao Moreno,
intanto grazie sempre per la tua pazienza :)
Questo significa che, da qualche parte nel tuo codice, stai impostando un valore alla proprietà IDOperatoreAbilitato, che è la chiave di OperatoriAbilitatiInterventi. Trova quel punto ed eliminalo.
Non capisco bene cosa intendi io sto cercando di fare una semplicissima insert, ovvero sono sul controller Create di OperatoriAbilitatiInterventi che mi fa inserire l'utente e l'abilitazione... ho provato pure a cancellare IDOperatoreAbilitato dal bind del controller Create ma ovviamente non sta li il problema.
Ieri dal debug mi sono accorto che lui non incrementava la chiave per questo andava in conflitto, cerca di fare l'inserimento mettendo sempre zero.
Se non dovesse funzionare, può darsi che Entity Framework non sappia che quello è un valore autoincrementante ma... è strano, perché nel momento in cui decori una proprietà di tipo int con l'attributo [Key], per default la convenzione vuole che sia interpretata come chiave autoincrementante.
In caso prova ad essere esplicito aggiungendo questo attributo sulla proprietà IDOperatoreAbilitato, in aggiunta all'attributo Key che hai già.
[Key, DatabaseGenerated(DatabaseGenerationOption.Identity)]
public int IDOperatoreAbilitato { get; set; }
La documentazione è qui al paragrafo "DatabaseGenerated"
https://msdn.microsoft.com/it-it/data/jj591583.aspx
Purtroppo ho provato a settarla manualmente l'autoincrement sul db ma niente, l'ho fatto anche con code first facendo (l'annotation che hai postato non mi funziona)
[Key, System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
adesso mi da un errore sul mapping che dice:
System.Data.Entity.Core.UpdateException: Errore durante l'aggiornamento delle voci. Per ulteriori dettagli, vedere l'eccezione interna. ---> System.InvalidOperationException: Viene eseguito il mapping di una proprietà dipendente in un elemento ReferentialConstraint a una colonna generata dall'archivio. Colonna: 'IDOperatoreAbilitato'.
ma vorrei capire, perchè? non vedo il senso di questa cosa
Grazie per il supporto