[EF + Oracle] Insertando en la Base de Datos (1/2) - El blog de Javier Torrecilla

[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”.

Published 3/3/2011 14:29 por Javier Torrecilla
Archivado en: ,,,
Comparte este post:
http://geeks.ms/blogs/jtorrecilla/archive/2011/03/03/ef-oracle-insertando-en-la-base-de-datos-1-2.aspx

Comentarios

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

Prologo En el episodio anterior hemos visto una forma de crear registros con EF, ahora vamos a ver peculiaridades

Thursday, March 03, 2011 3:27 PM por El blog de Javier Torrecilla

# [EF + Oracle] Actualización y Borrado de Datos

Prologo En los capítulos anteriores hemos visto como insertar datos a través de EF, sin secuencias y

Tuesday, March 08, 2011 1:55 PM por El blog de Javier Torrecilla

# [EF + Oracle] Consulta de los datos (I).

Prologo Hasta el momento, hemos visto un acercamiento a trabajar con Entity Framework y Oracle viendo

Friday, March 18, 2011 10:02 AM por El blog de Javier Torrecilla