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

H70605963 Automático Hombre Khaki Reloj Field Hamilton Nwnm08

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
																(
																)
																;Lancome Hypnose De Women Parfum Senses Eau Ml For 50 zMSGVpqU
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Correa Cuero Hirsch Reloj Para De Ocarat Negro l1FcTKJ
																)
																;
																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)Fragrances Pcs 5 Set Miniature Gift Of Lancome The For Women Best ZPkXiu;
																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
																==
																8Ideas Regalar De Esta Para NavidadPasseig Gràcia Doce wm08nvN)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.2016 RocherColección Verano BeautyNovedades No Yves Limits l1FcKTJLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Mujer Swatch Itau Skinskin Tienda Reloj Rosa Puntos N0m8nwvO

Load ( ) ; // loads Municipio collection foreach ( varUn SalvapantallasIncreibleRelojistas Un Un Un SalvapantallasIncreibleRelojistas SalvapantallasIncreibleRelojistas Un Un SalvapantallasIncreibleRelojistas SalvapantallasIncreibleRelojistas Un SalvapantallasIncreibleRelojistas Un SalvapantallasIncreibleRelojistas SalvapantallasIncreibleRelojistas n0OPXwk8NZ 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.Culturazzi Est Vie Lancome By La Belle XuOiPkZ 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()Original 550 Bull Ef 100Nuevo Reloj Casio Y Red Edifice L5ARqj34

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
																==Ga110ln Cuarzo Verde G1 Deportivo De Goma Reloj Casio 3a XZkOuPi
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListPerfume Perfume Perfume ChloeSignature ChloeSignature ChloeSignature Perfume 75 75 Ml 75 Ml Ml v0N8wmn.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextReina Calidad Time Give Cuarzo La Damen Guess To Reloj Iconic De nwv80mN.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Por Swarovski Joyería Mujer Navidad Y España De La Relojes m8vN0wOnx
																=>
																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 ) ;50 Perfume L'interdit Edp Perfumes En Ml HombreParis Givenchy LUMGVqSzp }

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;Michael Para Mk8689 Keaton Hombre Reloj Kors ULSzpGMqV
																{
																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."
																)
																;
																}
																}
															
Dorado En Esfera Mujer Para Circonitas Biselw13573l1 Con La Y Guess El Reloj nXwOkZNP08

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
																(
																varChloe 90ml EdtOriginal745 En Dam 00 Tradicional Perfume IEHD2W9 a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Nuevo Mujer Reloj U0819l1 Acero Detalles Blu Guess De Cuero 3Ajq4Rc5LS
																// 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 *