LINQ con varios orígenes de datos

Una vez superado unos inconvenientes, he podido retomar un poco esta parte VS2008 y fundamentalmente LINQ, espero este post sea de su utilidad.

En un post anterior de LINQ había mostrado una demo 3 capas con SQLServer y unas pruebas con objetos y XML a lo cual LINQ ha pasado las pruebas.

Pretendía a través de este demo realizar una conexíon con 2 distintos orígenes de datos (SQL y Oracle) e intentar mapear tablas tanto de SQL como de Oracle, sin embargo, con las tablas de Oracle esto no es posible. A continuación detallo todos los pasos que se deben seguir para conectarse a una base oracle, con el Server Explorer. Tomar en cuenta que se debe instalar la base de datos Oracle y además el ODP (Oracle Data Provider) Net para que se pueda conectar.

  1. Seleccionar Oracle Database
  2. LINQ Multisource

  3. Ingresar el SID del servidor y el usuario y password de la base.
  4. LINQ Multisource 2
  5. Finalmente verificar que se haya conectado exitosamente.
  6. A continuación podemos ver el error resultante cuando pretendemos arrastrar una tabla Oracle en un dbml
  7. LINQ Multisource 3

En vista de que la intención inicial de la demo no fue posible, ahora intentaré al menos consultar la data de las dos bases. En Oracle están los datos de país de origen, tipo de teléfono, estado civil, etc. mientras que en SQL se encuentra la información de los empleados, por lo que para presentar el país de origen de los empleados es necesario hacer una consulta de las dos bases.

A través de un dataadapter consigo poner la data de la base Oracle en un Dataset y con el dbml de SQL intento realizar la consulta, pero nuevamente no es posible, imagino que no es posible utilizar sentencias LINQ con objetos diferentes (Dataset y dbmls), así que ya lo saben LINQ solo con objetos del mismo tipo.

El único camino que queda es mapear la data del dbml a un dataset tipificado con la estructura de las tablas de SQL e intentar realizar la consulta.

Efectivamente ese fue el mejor camino para presentar la data de dos data sources diferentes, se que la interfaz del resultado no es lo mejor que se puede hacer, pero para efectos de esta demo, considero que está bien, cumple con lo que quería mostrar.

LINQ Multisource Resultado

Además de los datos del empleado, se ha consultado los teléfonos para lo cual en el evento RowDataBound se han consultado y presentado en un grid agregado previamente como ItemTemplate. Bueno aqui tienen el código (recuerden renombrar el archivo a .zip) para que lo vean, los requerimientos para correrlo son: VS2008, SQL2005, Oracle XE 11g, ODP Net, deben crear las tablas cuyas estructuras pueden encontrar en los DataSets y la data se encuentra en la página de resultados.

2 comentarios

  1. La prueba fue realizada en oracle 10G?

  2. @Marcelo:

    Si efectivamente fue probado cno Oracle 10G express edition, y con el release de Noviembre de VS2008

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: