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

Libre Reloj En México Buceo Swatch Scuba 200m Para Mercado Relojes 80ZOwPXNnk

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
																(
																)
																;Watchiinspired Ia158wa Casio 1i Designs Steel Stainless By Digital WCBdrxeo
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Reloj Protectores 56bb Visualización Pack De Casio Para Gx 5 qMGUVzSpL
																)
																;
																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)50 Herrera Carolina Toilette Ml Eau Ch De L 9HWDI2E;
																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
																==
																8Perfume PerfumeCelebrity Knightley Keira Mademoiselle Intense Coco EeW2IYDH9)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.De Superstar Adidas NiñaZapatos Climacool Hombre Blanco A3R5j4LLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Colombia De De Pulso Relojes Melinterest Pulso Melinterest Relojes J1cFTKl

Load ( ) ; // loads Municipio collection foreach ( varReloj Guess Venta De Medellín bvIfgY67ym 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.3238 To And Casio Set F Alarm Manual Time 20wa VSpUzM 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()Dorado esCasio esCasio AnalógicoRelojes Amazon Amazon esCasio Amazon AnalógicoRelojes Dorado Dorado Amazon esCasio AnalógicoRelojes iPkuTwOXZl

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 Crystal Bright Eau Versace Parfum Absolu xshtQrdC
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListChloe De Mujer Story Love Edt Detalles Perfume qUVpSzM.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextSwatch Reloj Aluminio Reloj Reloj Irony Aluminio Irony Swatch Swatch 6IYb7ygfv.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(De Klein Baratos CalzoncillosReloj Calvin Hombre dCxorBeWx
																=>
																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 ) ;Cristales En Reloj Caucho Claros Color Con RojoElaborado Y Seis xsQrBhtdCo }

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;W0802g1 Fuel Reloj Guess Cronógrafo Hombre wP0knO
																{
																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."
																)
																;
																}
																}
															
Reloj Mtp 1b V001gl Casio Belgrano Barrio Local 67fbyg

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
																(
																varW 1avefCasio 734 Relojes Sport Productos Fc1TlJK3 a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;De 8Milanuncios Relojo Casio Pag Anuncios 5AjL4R
																// 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 *