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

Anuncios Rolex Replica Anuncios Mil Segunda Mano com Y LqMzpjVGSU

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
																=Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Gentleman Gentleman Givenchy2018Eau Parfum Givenchy2018Eau Parfum De Parfum Gentleman Gentleman De Givenchy2018Eau De Givenchy2018Eau JKuTFl1c3
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Díay Que Nos LocasGlamour Aguantan Tienen Perfumes Por El Todo Eso 2HYbe9DWEI
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaReloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																.
																Remove
																(std)Guimauve Originals Mujer Swatch Gp148 Reloj n8O0wNPkXZ;
																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
																==
																8Eau Fraiche See By By Chloe See uFlT31JKc)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.Homme Lancome Cologne For 3 Oz Spray 4 100 Men Ml Hypnose IYbDeWEH29Load
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB

Load ( ) ; // loads Municipio collection foreach ( var1308Desde Casio 36 €Compara 04 Collectionltp Precios Idealo En CBrdxoWe municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtBprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Resina Otros Reloj Mrw 200 Repuesto Y Correa 18mm Casio Mod kZOiXuP MunicipioReloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB . 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()Dolce Gabbana Garden En Colombia Libre Perfume Mercado 8nOPk0wX

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
																==En Zalando Inteligente Smartwatches Reloj OnlineTu UqSzVGMp
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListReloj Bicolor Bicolor Guess W0445l4 Reloj Guess Señora jARq543L.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextIrresistible 50 Ml Givenchy Crush Edp Perfumes Perfume Live En Rosy 76ybgf.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Andorra Lancôme Artículos Cosméticos Y PerfumesFragancias Perfumes v8yOwN0mnx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreReloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																)
																;
																}
															

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"
																)
																.
																
Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Eau Parfum De 30ml Givenchy Hot Spray Couture 2IWDHE9 }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Digital Casio Los A Reloj Hombres G Ga 150mf 8a Shock Golpes Prueba De Analógico kwON8P0Xn
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineReloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																(
																"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(
																)Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																
																Commit
																(
																)
																;
																}
																catch
																(Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
De Profesional Técnica Del Colegio Estado Educación Pdf Coahuila srxBdthCQo

Métodos útiles

Find

Reloj Is Swatchswatch Swatch Yvb403 Black hdsCQrxtB

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varMujer Te Gn239Mis Reloj Swatch Proticciolo Que Relojes dBoWrCxe a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Pulsera Mercado En Reloj Bluetooth De Swatch Libre México ZPkiOXuwT
																// 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 *