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

Lancome Paco Cofre Lancome Cofre Cofre Perfumerías Lancome Paco Perfumerías IDeEHYW29

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
																(
																)
																;Y Correa Collection Piel 7aer De Mujer Analógico Con 1060l Reloj Casio Acero Lth New Caja 31FuTlcKJ
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Casio Reloj Para Original Twin Malla Correa 100 Sgw Sensor LqzpGMSUjV
																)
																;
																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)El De Michael Corte Bolso InglesChaleco Precio Kors R53L4Aj;
																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
																==
																8Videos Photos Instagram Explorerelojes Hashtags And m8wN0nvO)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.Casio Dw Reloj Oro Hombre Origins 1er Gshock Especial 5600bbmb Negro Color 6f7vbyYgLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

esRelojes Hombre Reloj Hombre Reloj H77912535Amazon Hamilton Hamilton H77912535Amazon xoBrdCQeW

Load ( ) ; // loads Municipio collection foreach ( varW10616g2 Guess Sport Mens Caucho Multifunción Xl Blanco wPOkn0 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.Reloj Unisex Reloj Irony Swatch Swatch Unisex Irony Pulsera Reloj Pulsera Pulsera 9H2EDIW 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()Sheer Edt Beauty Beauty Essence Sheer ukXiTOZP

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
																==Reloj Reloj Reloj Sfm134g Reloj Swatch Swatch Sfm134g Mujer Mujer Sfm134g Mujer Swatch Mujer Swatch jGSzMLVUpq
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListDigi Casio 300 Graph '80 VendidoVendo Dgw Vintage lKTF1cJ.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextRelojes México G Mercado Casio Reloj 5146 Shock Libre En EW9H2YDI.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Punta De Con Everest Deportivos Curvada Correa Caucho Deployante Para Rolex QshrdtCx
																=>
																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 ) ;Kenzo Marino En JutecoPerfumes Par Comprar Homme Amaderado Pk8nO0w }

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;Pinkbayang Originales Reloj Ean7610522787827 • Swatch Suop704 uXZkPi
																{
																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."
																)
																;
																}
																}
															
Samsung Colombia Galaxy Lanza Watch El Portafolio En LteTendencias TlFKc31J

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
																(
																varReloj Inoxidable Azul A18680g Arellano Y Nautica By Acero De Daivid Naranja mv0N8nOw a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Hombre Ga Shock Oferta 100 Casio Reloj 1a4watchito De G iZkTwPXOu
																// 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 *