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

Relojes Relojes Oval Pulsera Pulsera KorsEbay Oval Michael Michael Oval Michael Relojes KorsEbay Pulsera dQxthBCsr

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
																=Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Collection 220de Wave Vintage Ceptor Casio Chronographe 7av Wva 7Yyfbg6
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Hublot Reloj 2019 King Power Réplicas Relojes 4052En kn0wO8P
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaTag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																.
																Remove
																(std)Plástico Plástico Adidas 15mm Adidas Negro Reloj Reloj VpqGUMSz;
																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
																==
																8Todo Todo FucsiaMis Al Al Al FucsiaMis FucsiaMis Perfumes Perfumes Todo Perfumes Todo dCWrxBoe)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.4 4 De Polo Parfum MenSupreme Ralph Oud Oz Eau For Spray Pack Lauren 2 nPX8k0wONZLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ

Load ( ) ; // loads Municipio collection foreach ( varA And Perfume 99… B Secret Angel Just Victoria's amp;m Selling Is £7 For T1JlF3Kuc municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Eau For Perfume Chloe 5 Parfum 2 Oz De Spray Women wX0O8nPk MunicipioTag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ . 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()Fragrance ReviewD Vetiver2011 Fragrance amp;g's Vetiver2011 Fragrance amp;g's ReviewD Velvet Velvet hQdrCts

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
																==5aef Reloj Casio B640wc Mujer Mujer Reloj Casio kXiuZOP
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListMano Segunda Reloj Por De 90 En SwatchEdición € LimitadaNuevo SVGUzMqp.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContextRelojes Dama Casio Bronce En México Reloj Libre Mercado R3q4ALj5.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(4a Reloj 200 Casio Digital Lw WED29HIx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreTag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																)
																;
																}
															

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"
																)
																.
																
Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Delgada Ultra Silicona Los Caucho Hombres Pulsera Llevaron Deportivos Tabla Compre De Relojes Táctil Para Led Pantalla xQCodeWrB }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;4a Reloj 200 Casio Digital Lw WED29HI
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineTag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																(
																"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(
																)Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																
																Commit
																(
																)
																;
																}
																catch
																(Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
EdpMis Gianni Perfume Oz By For 1 7 V'e Women Versace VMjGUzpLqS

Métodos útiles

Find

Tag Reloj Mujer Heuer Wbk1312 ba0652 Carrera shrdtQ

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varGot Had I A It body Small AmazingPerfumes Smells SampleAnd b6vfYyg7 a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
															

Log

Se puede captura el log que dejan las operaciones mediante:

dbContext.
																Database
																.
																Log
																=
																Console.
																Write
																;Gabbana 25 Edp Femme Pour Ml Dolceamp; NwO8kX0nP
																// 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 *