[EF + Oracle] Insertando en la Base de Datos (1/2)

Prologo

Continuando con la serie de Entity Framework (I ,II y III) en este capítulo vamos a ver como crear registros en la Base de Datos a Través de Entity Framework.

Inserción de Datos

Tal y como hablaba en el 2º post, una entidad se va a corresponder con un registro de la Base de Datos, y cada una de las propiedades con una columna de la Tabla a la que representa la Entidad.

Para comenzar, será necesario que creemos una variable del tipo de Entidad que queremos insertar en la Base de Datos:

   1: EMPLEADOS empleado = new EMPLEADOS();

Como, también comente en el post anterior, existe la posibilidad de utilizar el método estático definido por VS en cada Entidad:

Una vez que hayamos creado el objeto de la entidad, podremos acceder a sus propiedades, para rellenarlas como una clase normal:

 

   1: empleado.NOMBRE = "Javier Torrecilla";

 

Después de rellenar las propiedades de nuestra Entidad, será necesario que lo agreguemos al ObjectSet de nuestro ObjectContext:

   1: enti.EMPLEADOS.AddObject(empleado);

o

   1: enti.AddToEMPLEADOS(empleado);

Ambos métodos van a realizar la misma acción, generar una inserción para la BD.

¿Hemos terminado?

No.

Toda Entidad, posee una propiedad “EntityState”, del tipo enumeración EntityState, que presenta los siguientes tipos:

  • Detached: Este estado  indica que la Entidad ha sido creada, pero no se ha añadido a la base de Datos.
  • Unchanged: Este estado indica que la Entidad no tiene cambios con respecto de consulta o desde la última vez que se actualizo la BD.
  • Added: Indica que se ha agregado al ObjectSet, pero todavía no se ha enviado a la Base de Datos.
  • Deleted: Indica que el objeto se ha borrado del contexto, pero todavía no de la BD.
  • Modified: Indica que el objeto tiene modificaciones pendientes de guardar en la BD.

Vamos a ver los cambios que se dan en la Propiedad durante los pasos de creación de un Registro y lo vamos a relacionar con su paso a la BD:

  1. Creación de la Entidad y asignación de las propiedades: EntityState=EntityState.Detached;
  2. Agregar el objeto al ObjectSet: La propiedad va a pasar a tener el valor EntityState.Added. Esto todavía no indica que se haya creado el registro en la Base de Datos.
  3. Guardar los Datos:

    Para poder guardar los datos en la base de Datos será necesario invocar a la función “SaveChanges()” de nuestro contexto. Una vez invocada la función, el valor de la Propiedad EntityState será EntityState.Unchanged.

 

¿Qué realiza la función SaveChanges?

Esta función se encarga de sincronizar y enviar todos los cambios pendientes de realizar a la BD.

Se van a agregar, modificar y eliminar todos aquellos Entidades, cuyas propiedad EntityState, tengan un valor Added, Deleted o Modified.

Una vez finalizado el proceso, aquellas entidades con la propiedad en valor Added o Modified, van a pasar a tener un estado “Unchanged”, y aquellas entidades en estado “Deleted”, van a pasar a un estado “Detached”.

3 comentarios en “[EF + Oracle] Insertando en la Base de Datos (1/2)”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *