Estoy intentando crear un registro en la base de datos que tiene un valor de clave principal predefinido. Sé cómo hacer esto con SQL, pero me preguntaba si EF puede hacer esto por mí. De lo contrario, tendré que crear un proc almacenado para las inserciones.
En caso de que tenga el atributo StoreGeneratedPattern
configurado en "Ninguno" para su entidad, el valor de la clave de entidad que especifique se pasará a la base de datos.
En caso de que este atributo se establezca en "Identidad" o en "Calculado", no hay forma de controlar qué valor se establecerá en esta columna en DB.
Por lo tanto, si tiene una columna de incremento automático en su base de datos y el asistente del Modelo de Datos de Entidad de ADO.NET ha establecido el StoreGeneratedPattern
de StoreGeneratedPattern
la StoreGeneratedPattern
para usted, puede cambiar manualmente este atributo a "Ninguno" en la parte SSDL del modelo utilizando el Editor XML. y luego habilitar IDENTITY_INSERT
.
Puede usar el método ObjectContext.ExecuteStoreCommand
si está usando EF4 o usar la propiedad ObjectContext.Connection.StoreConnection
para ejecutar el comando SQL SET IDENTITY_INSERT <Your_Table> ON
(ambos en EF1 y EF v4).