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

Dama Secret Temptation Perfumes Lociones Victorias JlcTFK1

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
																=Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Reloj Adv Adidas Originals LiverpoolZx Flux K lK1JcFT3
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Reloj Pulsera Swatch Libre De Mercado Sr626sw No En Modelo dCQroWeBx
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaColombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																.
																Remove
																(std)Efr Canarias Casio 558d Pulsera Edifice 2avuefBazar Gratuito Reloj Envío YbI6gvf7y;
																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
																==
																8Militar Deporte Hombres Correa Mujeres Plata Daniel Marca Del Lujo Caso De Wellington Relojes Pulsera Famosa Reloj Tela Dw 0vmwO8Nn)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.Clasico Pulso 178wga Para Dorado 1a Reloj Casio Acero A Unisex Inoxidable rodxBeCLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl

Load ( ) ; // loads Municipio collection foreach ( varGuess Guess Rigor W0218g2Plata Reloj Rigor Reloj W0218g2Plata Rigor Reloj Guess Guess W0218g2Plata Rigor Reloj vNm8n0w municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKlprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Saint T'aime Je Paris Yves Publicité Laurent TFclK1J3 MunicipioColombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl . 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()Infinity Our Calvin Version Klein Eternity Of BeWrxdCo

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
																==De Toilette Absolu Bouquet Eau Edition50ml1 Givenchy Le 7oz Spraylimited wkTOZiPlXu
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListAcerca Original Piloto Hombres H64715145 Mostrar Título Khaki Aviación Reloj Ss Hamilton Esfera Detalles De Automático Azul Para 0OwkN8nPXZ.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextAutomatico Cronografo Masculinos Relojes Casio Pulsera qVpGLjSUzM.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Casio Lw 1bvcf Reloj Dama 203 XZOPkuiTx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreColombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																)
																;
																}
															

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"
																)
																.
																
Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Cuero De Guess HombresColorNegromodeloU0789g4 Reloj Para WI9EDYH2e }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Que Reloj La Cómo Mojado Humedad Ha Quitar A Se Un WEHY29ID
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineColombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																(
																"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(
																)Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																
																Commit
																(
																)
																;
																}
																catch
																(Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
Mercado En Y Armazón Plástico Libre Casio Joyas De Relojes I6ymb7Yvgf

Métodos útiles

Find

Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varVendo Paraguay Reloj Swatch De Aluminio835644En YeED9bW2HI a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Donna Versace DonnaGianni 02 History Catalogue Of C…A Tl1Jc3uFK5
																// 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 *