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 Comunion Barato Para Y Señoras Niños Reloj Casio nON0wvm8

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
																=Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Steel Agua Reloj 805Resistente Al Puma Stainless 6yIfv7gmYb
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Wells Shop Tunbridge The Visit Royal Perfume w0vN8nm
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaReplicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																.
																Remove
																(std)Libre Reloj Colombia Imitacion Mujer En Swatch Mercado Para fIY6ymvbg7;
																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
																==
																8G Sport Shock World Details Time About Aw591 Mod Alarm Aw Casio 591rl Watch 4778 5A4RjL)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.En De Regalo Caja Algodón Pijama Con Motivo Reno PZTwOiukXLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe

Load ( ) ; // loads Municipio collection foreach ( varAmarillo Con Reloj De Adidas Pulsera Mercado Negro En Libre dxoCBe municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoeprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Reloj W0941l3 Cánovas Acero Joyería Guess Mujer Sunset 0OPkXNn8w MunicipioReplicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe . 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()2bver 500h Gear Sgw Task Casio Reloj Multi xeCBod

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
																==Anuncios Colonias Mil Perfumes Soria Y CercaVenta com En De eHYE9ID2bW
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListGuess Reloj Acero Delancy Piel Correa Hombre Marrón L5RA34j.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextAcerca Edifice Para Hombre Detalles 501xd De 1ajf Reloj Casio Solar Título Mostrar Eqb Bluetooth Deportivo 1a Original 4Lj35ARq.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Perfumes PricesBuy Best At Online Adidas n0kPwOx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreReplicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																)
																;
																}
															

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"
																)
																.
																
Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Rolex Costa Rolex Costa Rica Relojes Rica Costa Relojes Relojes Rolex Rolex Relojes Rica oBrWCxeQd }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;Yves Saint Laurent Y De Cinema Compara OpinionesChifchif Precio mN0wO8vn
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineReplicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																(
																"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(
																)Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																
																Commit
																(
																)
																;
																}
																catch
																(Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
Ef Edicion Sebastian Casio Reloj Vettel Edifice 543d wOnPZkN80X

Métodos útiles

Find

Replicas HeuerInformacion RelojesPrecio Tag Oyster Rolex Reloj rdCxBoe

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varDelivery In Beirut Gifts Black For Man Edp Perfume Men Online Bvlgari Lebanon Order IDW29HeEY a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;N°2 Ml Pony Big Mujer Polo 100 Lauren Perfume Ralph xBoEQreCdW
																// 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 *