martes, 8 de diciembre de 2009

Que es ADO.NET Entity Framework

2 comentarios:
Teoría básica:
ADO.NET Entity Framework se ha diseñado para admitir servicios y aplicaciones centradas en datos, y proporciona una plataforma para programación con datos que eleva el nivel de abstracción del nivel lógico relacional al nivel conceptual. Permitiendo a los programadores trabajar con datos en un nivel de abstracción superior, Entity Framework admite código que es independiente de cualquier motor de almacenamiento de datos o esquema relacional determinados.
A continuación veremos un ejemplo de por qué usarlo.
¿Por qué usarlo?
La programación orientada a objetos supone un desafío al interactuar con sistemas de almacenamiento de datos. Las teorías de normalización suelen dividir las tablas, lo que representa un problema usar una serie de código extra, para que los programadores cada vez que necesitamos alcanzar información de otra tabla. Miremos el siguiente ejemplo.




ejemplo.
En el ejemplo se muestra la tabla products y category para alcanzar estas tablas seria de las siguientes formas.

sql
SELECT Products.ProductName, Categories.CategoryID, Categories.CategoryName
FROM Categories INNER JOIN
Products ON Categories.CategoryID = Products.CategoryID
Note que aun no está el código para conectarse a la base de datos ni el DataAdapter y el DataSet.

linq
DataClassesDataContext db = new DataClassesDataContext();
var query = from p in db.Products
join c in db.Categories
on p.CategoryID equals c.CategoryID
select new { p.ProductName, c.CategoryID, c.CategoryName };
GridView1.DataSource = query;
GridView1.DataBind();


Con entities:
NorthwindModel.NorthwindEntities ne = new NorthwindModel.NorthwindEntities();
var products = from p in ne.Products.Include("Categories")
select new { p.ProductName, p.Categories.CategoryName };

GridView1.DataSource = products;
GridView1.DataBind();


Puede notar que es más fácil utilizar Entities cuando nuestra base de datos está normalizada, seguro ustedes han superado este problema simplemente creando una vista o un store procedure sin embargo quiero hacer notar que entities lo hace automáticamente.

Como inicio:
Agregue un nuevo elemento, se mostrara la pantalla siguiente:



Elija Ado .net Entity Data Model y siga el asistente, en el asistente elija las tablas que necesita ahorita seria Product y category. Al terminar se mostrara el siguiente modelo y ya puede usar el código superior.

Ver