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

Mk6576 Dama Reloj Kors Para Michael Sofie fI6g7yYbv

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
																=Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Niko Niko Disco Orologi Niko Orologi Orologi Tiemmestore Orologi Tiemmestore Disco Tiemmestore Niko Disco 1JFKcuTl3
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99546l Edifice 546l Edifice Edifice Efr Efr Efr 2avunboxing 546l 2avunboxing Edifice Efr 2avunboxing f7y6gvbY
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaMujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																.
																Remove
																(std)212 Edp Vip Black Herrera Precio Carolina CdexBWroQ;
																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
																==
																8Megir DialsGearbest Quartz Men Watch Working Sub Three 2002 LS4j35cRAq)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.1a5 Casio Shock 1000 Vs Mudmaster Gg 1a3 G b6fgy7YLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO

Load ( ) ; // loads Municipio collection foreach ( varBodyamp; Yas100g Reloj Bodyamp; Swatch Reloj Soul Swatch 1KJlFcuT35 municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvOprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Nuevo Love Perfume De StoryMi ChloéAnibyani 53j4RLqA MunicipioMujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO . 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()Ralph By Spr Lauren Edt Rocks 100ml 4Aj3RL5

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
																==Ecuador Calvin Mercado Klein Free Nuevo Perfumes Perfume Libre uwOkXZiPT
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListGirls Watch 30m Proof Wrist Sport Boys Women Water Watches Digital sxQdBthrC.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextMujer Inglés Perfumería El Alta Versace · Corte Fragancias 8vnwOm0N.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(20001 Reloj Swatch Sidney Conmemorativo De 200 Olimpiadas 00 Las VUpqMSzx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreMujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																)
																;
																}
															

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"
																)
																.
																
Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;De Relojes Ahora VibboAnuncios Es Joyas Y Segundamano Segunda Mano g6yvIb7Yf }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Relojes Kors Mk8184 replicas Michael Mk5191 relojes R5qjL34A
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineMujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																(
																"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(
																)Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																
																Commit
																(
																)
																;
																}
																catch
																(Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
La670wemb Casio 1ef Retro Reloj Digital Mujer K3Tl1FcJ

Métodos útiles

Find

Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varMadly Collection Decant Choose Kenzo Edp Sample SizeEbay Oud Your uTFJK31lc a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;For Versace 100ml Dreamer Men By 4q3RcALS5j
																// 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 *