miércoles, 5 de febrero de 2014

Snippet Basico Data Layer C# con Entity Framwork 6.0

Cascaron DataLayerIng Al utilizar C# con Entity Framework  y trabajando por capas lo mas común es crear un capa de datos, para hacer esto lo mas básico para una capa de datos es el Clásico ABC. Para ello y para avanzar mas rápido en nuestros desarrollo sobre Visual Studio están las herramientas conocidas como Snippets(Sobre estas comente en otra publicacion ) y hoy me permito publicar el código de un Snippet para visual Studio sobre C# que permite crear rápidamente las clases de Data para nuestro proyecto.

Espero les sea útil a mi me ayudo a terminar mas rápido; contiene una funciones de:

  • Búsqueda por ID
  • Devolver Todos los registros
  • Inserción
  • Actualización
  • Borrado
Obviamente si requieren mas funciones por default pueden modificarlo  a su gusto. 


  
    
Cascaron DataLayer Ing. Florentino Hernández Guzmán Cascaron Basico de DataLayer con Entity Framework 6.0 CascaronDatalayer
Entity Entidad sobre la cual se describe la Clase EntityName ID nombre del ID de la entidad para la que se desarrolla la clase entityId ClassName Nombre de la Clase ClassName Context Contexto de conexion a la base de datos MainWindow.db Variable Variable sobre las opciones _var Proyecto Nombre del Proyecto ProyectName Contenedor de Entitys Sub Carpeta de donde se encuentran los elementos de Entitys Entitys /// Clase que almacena los accesos a datos de la entidad $Entity$ /// public static class $ClassName$DL { /// /// Clase que devuelve un usuarios basandose en su ID /// para corroborar el acceso /// /// ID del $Entity$ A localizar /// Null son incorrectos o $Entity$ si es localizado public static $Entity$ getByID(Decimal $ID$) { try { $Entity$ $Variable$ = $Context$.$Entity$.Find($ID$); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Clase que devuelve todos los Obejtos $Entity$ conenidos en la BD /// /// Null son incorrectos o $Entity$ si es localizado public static List<$Entity$> getAll() { try { List<$Entity$> $Variable$ = $Context$.$Entity$.ToList(); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Inserta la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a insertar /// Numero de registros afectados public static int Insert($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { $Context$.$Entity$.Add($Variable$); result= $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Actualiza la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Actualizar /// Numero de registros afectados public static int Update($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Modified; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Elimina la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Eliminar /// Numero de registros afectados public static int Delete($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Deleted; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } } }]]>