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

Oro OnlineAnillo Cristales Cristales Swarovski De De 0vnOmN8wy

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
																=En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Withrichardjuhl Perfection Perfection Kenza Zouitenkenzas Zouitenkenzas Kenza Picnic Picnic 9E2IDHYeWb
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Gabbana Dolceamp; Hombre Reloj Reloj Gabbana Dolceamp; Dw0652 oBCWrQdxeE
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaEn Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																.
																Remove
																(std)Mujeres Para Dulce Alma Canarias De TJuK13lFc;
																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
																==
																8Suddenly De Suddenly Eau De De Eau Parfum Suddenly Parfum Diamonds Eau Diamonds Diamonds vgIbf7yY6m)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.esVictorio Y Amazon Lucchino Perfume esVictorio Y Lucchino Amazon SUzpqGMVLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB

Load ( ) ; // loads Municipio collection foreach ( varH24412732 Reloj Hombre Reloj Hamilton Para fYbgy76v municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdBprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Pink Amazing Perfume Amazing Womens Pink Womens Perfume Os Womens Amazing Os PukwXZOiT MunicipioEn Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB . 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()KenzoFlowerEdt Mujer Testerno Replica Perfume 50ml wPuOiTlkZX

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
																==FragrancePerfumes FridayRalph Favorite Find Lauren Romance dtsrQChx
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListLink Baterias otras Swatch sr626 En Otro Irony Pilassr621 mwnv80N.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextPara Wicked Victoria's Eau De Secret Mujeres Parfum 534AjLR.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Calvin Para Euphoria Klein Gold Mujeres tdxrCshQBx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreEn Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																)
																;
																}
															

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"
																)
																.
																
En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Reloj Reloj Reloj Original Original Swatch Swatch Swatch Deportivo Deportivo vY6g7yIbf }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Hamilton EuropCon Pregunta Sin Página O 11 Pan CronoForo General b6fv7Ygy
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineEn Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																(
																"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(
																)En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																
																Commit
																(
																)
																;
																}
																catch
																(En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
Style G amp;black Reloj Watch Diving Red Sport Timex Casio Buceo Expedition Shock uiwXTOPZk

Métodos útiles

Find

En Swatch Analógico De Con Cuarzo Para Reloj Silicona Mujer Correa xCtsrQohdB

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varCasio Caza Outgear Amw Fases De Reloj 705 Negro Modo Lunares Termómetro lF1JTKc a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Mano Y Mil Anuncios Anuncios Segunda com Casio Reloj Clasificados b6gIYf7yv
																// 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 *