Para que sirve LINQ?

21/10/2008 - 03:16 por Anti_Work | Informe spam
Hola.
Estaba mapeando objetos a sql server 2005. El problema era el siguiente:
Tengo un objeto Empresa que tiene un conjunto de objetos Licitacion, Cada
Licitacion tiene un conjunto de objetos Articulo, los cuales, as su vez
tienen un objeto Proveedor. Como la empresa debe conocer a sus proveedores,
tambien tiene una coleccion de Proveedor. Tambien tenemos la coleccion de
objetos Entrega, etc, etc.
Imaginense lo que es mapear todo esto a una base de datos, por ejemplo para
agregar una Licitacion ¡¡todo lo que hay que verificar para asegurarnos que
no falle!! ¿Y si eliminamos una Licitacion...!!?

Asi que me puse a ver un poco por arriba LINQ. Enseguida me di cuenta que
LINQ con su diseñador, hace todo esto (y mucho mas). Todo lo que tenemos que
hacer es arrastrar las tablas con el mouse. Tal vez sea un problema el hecho
de que a veces nuestro diseño de objetos no coincide exactamente con el de la
DB, pero seguramente no debe ser muy dificil solucionarlo.
Lo que tambien pude ver, es que todo luce como para usarlo como un origen de
datos. Y aunque no me interiorice mucho en esto, me pregunto ¿para que? ¿para
que agregar una capa más? si al final terminaremos con un dataset tipado o
algo asi. ¿por que no conectar el origen de datos directamente a la base de
datos?.
Y aqui la corto por ya se me fue la mano (o la lengua).

Saludos
 

Leer las respuestas

#1 Alfredo Novoa
21/10/2008 - 11:42 | Informe spam
Hola,

El Mon, 20 Oct 2008 18:16:01 -0700, Anti_Work escribió:

Hola.
Estaba mapeando objetos a sql server 2005. El problema era el siguiente:
Tengo un objeto Empresa que tiene un conjunto de objetos Licitacion, Cada
Licitacion tiene un conjunto de objetos Articulo, los cuales, as su vez
tienen un objeto Proveedor. Como la empresa debe conocer a sus proveedores,
tambien tiene una coleccion de Proveedor. Tambien tenemos la coleccion de
objetos Entrega, etc, etc.
Imaginense lo que es mapear todo esto a una base de datos, por ejemplo para
agregar una Licitacion ¡¡todo lo que hay que verificar para asegurarnos que
no falle!! ¿Y si eliminamos una Licitacion...!!?



Pues si, es estupendo para alargar el tiempo de desarrollo y complicar el
mantenimiento.

Asi que me puse a ver un poco por arriba LINQ. Enseguida me di cuenta que
LINQ con su diseñador, hace todo esto (y mucho mas). Todo lo que tenemos que
hacer es arrastrar las tablas con el mouse. Tal vez sea un problema el hecho
de que a veces nuestro diseño de objetos no coincide exactamente con el de la
DB, pero seguramente no debe ser muy dificil solucionarlo.



No es difícil. Eliminas el modelo de objetos y ya está.

Lo que tambien pude ver, es que todo luce como para usarlo como un origen de
datos. Y aunque no me interiorice mucho en esto, me pregunto ¿para que? ¿para
que agregar una capa más? si al final terminaremos con un dataset tipado o
algo asi. ¿por que no conectar el origen de datos directamente a la base de
datos?.



No se muy bien a que te refieres con "origen de datos". Pero se supone que
si usas LinQ ya no necesitas datasets.

LinQ pretende evitar el uso de SQL incrustado en las aplicaciones y
permitir la verificación de las consultas en tiempo de compilación. El
problema es que solo lo consigue en parte por que hay muchas consultas que
no se pueden hacer en LinQ y hay que hacerlas en SQL de todas formas.
Además de esto LinQ tiene muchos otros defectos por haber sido diseñado por
gente que no tiene ni idea de bases de datos.


Saludos

Preguntas similares