Sto cercando di creare un record nel db che abbia un valore di chiave primaria predefinito. So come farlo con SQL, ma mi stavo chiedendo se EF può farlo per me? Altrimenti, dovrò creare un proc memorizzato per gli inserti.
Nel caso in cui l'attributo StoreGeneratedPattern
impostato su "Nessuno" per la propria entità, il valore della Chiave Entità specificato per tale oggetto verrà passato al database.
Nel caso in cui questo attributo sia impostato su "Identity" o su "Computed" non è possibile controllare quale valore verrà impostato su questa colonna nel DB.
Pertanto, se nel database è presente una colonna a incremento automatico e la procedura guidata del modello di dati di entità ADO.NET ha impostato per te StoreGeneratedPattern
, è possibile modificare manualmente questo attributo su "Nessuno" nella parte SSDL del modello utilizzando XML Editor, e quindi abilita IDENTITY_INSERT
.
È possibile utilizzare il metodo ObjectContext.ExecuteStoreCommand
se si utilizza EF4 o si utilizza la proprietà ObjectContext.Connection.StoreConnection
per eseguire un comando SQL SET IDENTITY_INSERT <Your_Table> ON
(entrambi in EF1 e EF v4).