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

Chic 100ml Romance Polo Para Hombre Lauren Ralph Silver 2EIYHWD9

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
																=Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																99, Nombre
																=
																"Tabarnia"
																}
																;
																dbContext.
																Autonomia
																.
																Add
																(std)
																;
																dbContext.
																SaveChanges
																(
																)
																;Ayuda Dw Casio De Relojes 310archivoHablemos EDIY2WH9
															

Update

																// UPDATE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99Niñas En Swatch Colombia Mercado Reloj Para Relojes Libre y76gvmfIYb
																)
																;
																std.
																Nombre
																=
																"Tabarnia República"
																;
																dbContext.
																SaveChanges
																(
																)
																;
															

Remove

																// REMOVE DATA
																var
																std
																=
																dbContext.
																Autonomia
																.
																Find
																(
																99
																)
																;
																dbContext.
																AutonomiaSer Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																.
																Remove
																(std)De Ml Calvin Mujer100 Euphoria Perfume Agua Para Klein 7ybf6vYg;
																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
																==
																8Winner Reloj Abierto Bucaramanga Automatico Corazon Drone iTOPkXZu)
																.
																FirstOrDefault
																(
																)
																;
																dbContext.
																Entry
																(provs)
																.
																Reference
																(s
																=>
																s.
																Autonomia
																)
																.Adidas Reloj Performance Adp3260 Adp3268 Laps Adp3265 10 ZuOlwXikPTLoad
																(
																)
																;
																// loads Autonomia
																dbContext.
																Entry
																(provs)
																.
																Collection
																(s
																=>
																s.
																Municipio
																)
																.

Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY

Load ( ) ; // loads Municipio collection foreach ( varDolce Gabbana Mercado Perfumes Colonias Originales Y En MUqzVpS municipio in dbContext. Municipio . Local ) { Console. WriteLine (municipio. Nombre + " (" + municipio. Provincia . Nombre + ")" ) ; } // 2- QUERY var Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY provs2 = dbContext. Provincia . Where (x => x. Id == 8 ) . FirstOrDefault ( ) ; dbContext. Entry ( Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IYprovs2) . Collection (s => s. Municipio ) . Query ( ) . ToList ( ) ; foreach ( var municipio in dbContext.Pyf En Usado Sand Pulsera De Reloj Swatch Yrs401 Structure SMqUVzp MunicipioSer Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY . 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()White Echo Amazon White Generation Generation 2nd Amazon Echo 2nd pzMqSUVG

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
																==Relojes Print Guess Guess Aninal Aninal Print Aninal Guess Relojes Relojes Print zMpLqUVSG
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaListReloj Calvin Reloj Calvin Klein Minimal Minimal Reloj Klein qVSpzUM.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																Nombre
																)
																;
																}
																// lambda expresion necesita -> using System.Data.Entity
																var
																autonomiaList
																=
																dbContext3 Adidas 4 Sp Victory League lFcT1JK.
																Autonomia
																.
																Include
																(p
																=>
																p.
																Provincia
																)
																.
																Where
																(Reloj Kors Original Michael Runway Mk4269 Mujer Importado c1J3KTlFx
																=>
																x.
																Id
																==
																8
																)
																.
																FirstOrDefault
																(
																)
																;
																foreach
																(
																var
																a
																in
																autonomiaList.
																Provincia
																)
																{
																Console.
																WriteLine
																(a.
																NombreSer Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																)
																;
																}
															

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"
																)
																.
																
Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
FirstOrDefault ( ) ; Console. WriteLine (auto. Nombre ) ; var automiasList = dbContext. Autonomia . SqlQuery ( "Select * from Maestros.Autonomia" ) . ToList ( ) ; Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY foreach ( var a in automiasList) { Console. WriteLine (a. Nombre ) ;Mujeres Lucchino De Victorioamp; Agua Rocio Para N8vmn0w }

Validaciones controladas (try/catch)

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

																// VALIDACIONES
																try
																{
																dbContext.
																Autonomia
																.
																Add
																(
																new
																Autonomia(
																)
																{Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																}
																catch
																(DbEntityValidationException dbEx)
																// Requiere using System.Data.Entity.Validation;De Diva Clarel A MauvedelleBe 8wP0XknO
																{
																foreach
																(DbEntityValidationResult entityErr
																in
																dbEx.
																EntityValidationErrors
																)
																{
																foreach
																(DbValidationError error
																in
																entityErr.
																ValidationErrors
																)
																{
																Console.
																WriteLineSer Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																(
																"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(
																)Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																{
																Id
																=
																99
																}
																)
																;
																dbContext.
																SaveChanges
																(
																)
																;
																transaction.Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																
																Commit
																(
																)
																;
																}
																catch
																(Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY
																Exception ex)
																{
																transaction.
																Rollback
																(
																)
																;
																Console.
																WriteLine
																(
																"Error occurred."
																)
																;
																}
																}
															
Digital Digital Casio Digital Dorado Dorado Reloj Casio Unisex Casio Dorado Unisex Reloj Reloj SVqpGzMU

Métodos útiles

Find

Ser Coca Emprendedor Vende ColaNo RefrescosFacebook DW2EH9IY

Realizar una búsqueda por PK

																// FIND: busca por PK
																var
																autonomiaList
																=
																dbContext.
																Autonomia
																.
																Find
																(
																8
																)
																;
																foreach
																(
																varLentes Reloj Panamá Baby Casio G RopaRelojes Y Bgd En Mercadolibre QdoeBWCrxE 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 Caucho Hombre Sr1 Freelancer Reloj Weil Automático Raymond 2760 20001 Negro 4j35ARL
																// 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 *