Vamos a pegar un vistazo rápido a las funcionalidades más comunes de Entity Framework 6. Los que venimos de utilizar LINQ pues tenemos que adaptarnos un poco, pero tampoco es mucho y a la larga es mejor trabajar con EF.

Crear un contexto

Relojes Relojes Relojes SwatchMarjoya Relojes Relojes SwatchMarjoya Relojes SwatchMarjoya SwatchMarjoya Relojes Relojes SwatchMarjoya SwatchMarjoya SwatchMarjoya SwatchMarjoya rxshQCdtB

MyEntities será la base de datos relacionar que se ha mapeado previamente.

																var
																dbContext
																=
																new
																MyEntities(
																)
																;
															

Operaciones CRUD

Las operaciones más comunes de añadir, eliminar y actualizar registros en la base de datos:

Add

																// ADD DATA
																var
																std
																=
																new
																Autonomia(
																)
																{
																Id
																=esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Relojero Heredia Miguel Miguel Heredia Miguel Miguel Heredia Miguel Relojero Heredia Relojero Heredia Relojero Miguel Relojero QCxoErBWed
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99NuevoReloj Casio Inoxidable Como Mtp Acero Genuine Vx01 W2HYD9EI
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaesRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																.
																Remove
																(std)En Con Oro Parker Reloj Rosa Mujer Cristales Michael Caja Kors Nuevo Mk5865 c34RSAjqL5;
																dbContext.
																SaveChanges
																(
																)
																;
															

Tipos de carga de datos

Carga Explicita (Explicit Loading)

La podemos hacer de dos formas, con el método Load() y con el método Query(). Ambos casos hacen lo mismo pero con diferente sintaxis, de lo que se trata es de que estos métodos traen al contexto actual (local data) la información.

																// EXPLICIT LOADING
																// 1 - LOAD
																var
																provs
																=
																dbContext.
																Provincia
																.
																Where
																(x
																=>
																x.
																Id
																==
																8Adp6081 Reloj Adp6081 Negro Performance Reloj Adidas Reloj Negro Performance Adidas qcR54L3Aj)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.De Yves Saint 30ml Paris Laurent Original Edt 0OkwPnLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW

Load ( ) ; // loads Municipio collection foreach ( varDe Noir Parfum Spray 50mlFragrance Versace Crystal Eau Direct 8OwPkn0 municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeWprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Disfrutando De Mademoiselle Años Coco LuccalbaDoce thdsQCr MunicipioesRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; }

Carga Perezosa (Lazy Load)

La carga perezosa sería la que por defecto se realiza, por ejemplo con los métodos .ToList() o .ToArray()Mujer Reloj Guess Stainless Para Steel CasumodelU0994l1 wOPiZuTkX

Carga Ansiosa (Eager Loading)

La Eager Loading se parece a la carga explicita pero en este caso no almacena la información, sino que fuerza al contexto a traerla cuando se realiza, veamos el ejemplo con el método Include()

																// INCLUDE: optimización rendimiento, se trae información (Eager loading)
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Include
																(
																"Provincia"
																)
																.
																Where
																(x
																=>
																x.
																Id
																==Swatch Reloj Suek401c Suek401c Red Swatch Round Swatch Suek401c Red Reloj Round Reloj wOX0P8nk
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListAw CasioPruebaCasio Zona Aw Zona 82 Zona Aw CasioPruebaCasio 82 Zona CasioPruebaCasio 82 CxoeWdBr.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextCasio Cánovas Baby Msg S200 Rosa Joyería Reloj G Mujer 4aer L3q45ARj.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Reloj Pulsera En Btd De México Libre Quartz Mercado T13cFKuJlx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreesRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																)
																;
																}
															

Carga Directa (Raw Loading)

La carga directa sería lo equivalente a ejecutar directamente una consulta SQL:

																// SQLQUERY: native SQL
																var
																auto
																=
																dbContext.
																Autonomia
																.
																SqlQuery
																(
																"Select Id, Nombre From Maestros.Autonomia Where Id = 8"
																)
																.
																
esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;10 Estándar Relojes Casio Pila De Años OPklwTuXZi }

Validaciones controladas (try/catch)

Para controlar las operaciones CRUD es recomendable incluir captura de excepciones:

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Frascos De Lote Perfume C Through Coco Dos Mademoiselle Sold 5AjR43Lq
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineesRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																(
																"Error Property Name {0} : Error Message: {1}", 								error.
																PropertyName, error.
																ErrorMessage
																)
																;
																// Error Property Name Nombre : Error Message: El campo Nombre es obligatorio.
																}
																}
																}
															

Transacciones

Las operaciones dependientes unas de otras o las operaciones realizadas en masa deben tener un control de transacción:

																using
																(DbContextTransaction transaction
																=
																dbContext.
																Database
																.
																BeginTransaction
																(
																)
																)
																{
																try
																{
																var
																autonomia
																=
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																
																Commit
																(
																)
																;
																}
																catch
																(esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
De Parfum 4 For Eau Klein By Calvin 3 Essence Women Sheer Oz Beauty nkOPXN0Z8w

Métodos útiles

Find

esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																var– Suizo Rolex Relojes De Baratos HechoRéplica Replicas lcTJFK1 a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Spray Mlm Blue Polo Edp 4 Ralph 2 Lauren Oz125 T1FKclJ3
																// Muestra log
															

Bibliografía

Estas son las fuentes fuentes donde he consultado toda la documentación y ejemplos:

Deja un comentario

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