head Programado: Entity Framework Insert usando Generics

jueves, 28 de agosto de 2014

Entity Framework Insert usando Generics

A continuación, les explico cómo hacer un método genérico que permita insertar en una base de datos, mediante el uso del Entity Framework.

Lo primero es crear una clase donde vamos a crear todas nuestras operaciones genéricas.

Para este caso, vamos a crear la clase de la forma más simple y rápida posible, aunque es posible realizar mejores implementaciones, que voy a explicarles en otras entradas.
  

    public class OperacionesModelo
    {

    }


Ahora para poder acceder a nuestro modelo necesitamos un referencia al contexto. Que no es más, que el objeto que nos va a permitir realizar consultas y/o cambios sobre nuestro conjunto de datos.
public class OperacionesModelo
    {
        //propiedad para acceder al contexto
        private DbContext context { get; set; }

        /// 
        /// set de context
        /// 
        public OperacionesModelo(DbContext _context)
        {
            if (this.context == null)
                throw new ArgumentException("context can't be null");

            this.context = _context;
        }
    }
Creamos una propiedad context, y agregamos el constructor de la clase, que recibe el contexto con el cual vamos a realizar las consultas y/o cambios sobre nuestro conjunto de datos.

Ahora si, creamos nuestro método agregar genérico que recibe como parámetro el objeto a ser agregado en nuestro conjunto de datos; y retorna el objeto insertado.

public class OperacionesModelo
    {
       //propiedad para acceder al contexto
        private DbContext context { get; set; }

        /// 
        /// set de context
        /// 
        public OperacionesModelo(DbContext _context)
        {
            if (this.context == null)
                throw new ArgumentException("context can't be null");

            this.context = _context;
        }

        /// 
        /// agrega un objeto
        /// 
        public T Agregar(T entity)
        {
            try
            {
                if (entity == null)
                    throw new ArgumentException("entity can't be null");

                //agrega el objeto
                this.context.Set().Add(entity);

                //guarda los cambios
                this.context.SaveChanges();

                return entity;
            }
            catch (Exception exec)
            {
                throw new ApplicationException(exec.Message, exec.InnerException);
            }
        }
    }

El método creado valida el objeto, agrega el objeto al contexto, guarda y por último retorna el objeto agregado.

No hay comentarios:

Publicar un comentario