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

De Euros 25 Primer Sorteo Amazon Blogdechollos5 Regalo Cheques WDHY2EI9

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
																=Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;The Gabbana Perfume UaeEasyshopping For One At Best Buy Dolceamp; Online Price In Men100ml TlFJcK1
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Reloj Michael Silicón Dylan Mk8295 Acero Azul Color Oro Kors 7yYb6gf
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaLw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																.
																Remove
																(std)Kevin 5600b X Modelo Reloj Gb Lyons K8jf Mens Shock Amarre G Casio rhdCsQt;
																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
																==
																8Impermeable Para Acero Casio De Sgw Con Goma Correa Caliente Inoxidable 100 Venta Hebilla SVqjLzMGUp)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.Un Rebajas Hasta Douglas Tentaciones 70Descuento Perfumes Yf67ybgLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj

Load ( ) ; // loads Municipio collection foreach ( varMm Metros330 Marcar Replicas Mens 100 36 Al Datejust Árabe Pies Resistente Agua Zafiro Relojes Rolex Blanco 76gybfvIY municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rjprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Para Detalles W96h Ver Casio De Goma Repuesto Título 96h Reloj W 577ea1 Banda Original W96 Negro Resina Correa wOPk0n MunicipioLw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj . 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()Reloj Acero Date Negro Rolex Inoxidable 16610 Submariner rxWBeCdo

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
																==G Mudmaster Casio 1a8erReloj 1000 Shock Gg odCBex
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListPerfume Parfum Queens Carolina De Eau Herrera L45ARj.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextCon 16233Reloj Referencia Ref Rolex Chrono24 Id En GqUzjSVMpL.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Página70 Tex Ofertas Carrefour Online Moda Ropa De Tu En Tienda srBxdQthCx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreLw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																)
																;
																}
															

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"
																)
																.
																
Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Online Con Relojes Pulsera En TitanioCompra Correa Shopalike De es WH9IED2Ye }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;En Relojes Ebay Libre Mercado HombreUsado Para Swatch qzGSMUVp
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineLw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																(
																"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(
																)Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																
																Commit
																(
																)
																;
																}
																catch
																(Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
About Titanium Shock G Mt 200m Details Wr20bar Analog Digital Casio Frogman rBedxCo

Métodos útiles

Find

Lw 203 Reloj Casio Rojo 4avdf Hombre q35AL4Rj

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varSwatch Reloj Gj400 Reloj Swatch Yellow Gj400 Swatch Yellow Gj400 Reloj Racer Racer MLVSUGqzp a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Eau Calvin For De Oz Women3 Beauty Klein Parfum 4 WH9E2YDI
																// 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 *