Linq para mapear Datasets a Entidades?... alternativas ágiles?

15/07/2008 - 23:10 por Ariel Larraburu | Informe spam
Buenas!. La pregunta es, suponiendo que tengo en una aplicacion en capas, en
la capa de acceso a datos, metodos que actualmente obtienen datasets de
procedimientos almacenados y convierten estos datarows a entidades de tipo
List<Tipo>, es decir, convierto:

Select Nombre, Apellido From Clientes

a:

public class Clientes:List<Cliente> {}

donde 'cliente' es:

public class Cliente
{
public string Nombre { get {...} set {...}}
public string Apellido { get {...} set {..}}
}

Estoy buscando el metodo mas eficiente y que me insuma el menor trabajo y la
menor cantidad de lineas de codigo posible, estoy intentando lograr esto con
linq to dataset, no lo logre aun, pero estimo que por ese lado está la
solucion. Todo esto suponiendo que los campos de la tabla y las propiedades
de la clase ya son de tipos compatibles y sus nombres son los mismos...

El siguiente código no funciona pero da una buena idea de lo que quiero
hacer. No estoy buscando que me resuelvan el problema, pero tampoco quiciera
reinventar la rueda:

//esta es una clase del tipo List<Product>
ENTeCommerce.Products entProducts = new
ENTeCommerce.Products();

var products = from p in ds.Tables[0].AsEnumerable() select p;
entProducts = products.ToList<ENTeCommerce.Products>();

Resultado: (error en la ultima linea) cannot convert from
'System.Data.EnumerableRowCollection<System.DataRow>' to
'System.Collections.Generic.IEnumerable.

Actualmente tengo una clase que usa reflection, algo asi como public static
MapEntity(DataSet dsSource, ref object entity), pero usar reflection no solo
no es, digamos muy prolijo, sino que genera un pequeño cuello de botella.

Se aceptan todo tipo de sugerencias.

Saludos.

Ariel Larraburu.

Preguntas similare

Leer las respuestas

#6 Jose Alberto
16/07/2008 - 22:00 | Informe spam

Yo tampoco le veo mucho sentido ni ventajas a Linq to Sql, en cambio si a
Linq to object para volcar los resultado de los datos obtenidos de un SP a
las entidades.





Creo lo mismo, Linq to Objects debe tener usos mas eficientes que Linq to
SQL o to DataSet.
Respuesta Responder a este mensaje
#7 Alfredo Novoa
17/07/2008 - 12:15 | Informe spam
El Wed, 16 Jul 2008 15:30:14 -0430, Jose Alberto escribió:


Creo lo mismo, Linq to Objects debe tener usos mas eficientes que Linq to
SQL o to DataSet.



Lo malo es que Linq to Objects no optimiza practicamente nada y es muy
ineficiente. Con Linq to SQL es SQL Server el que optimiza las consultas.


Saludos
Alfredo
Respuesta Responder a este mensaje
#8 Alfredo Novoa
17/07/2008 - 12:24 | Informe spam
On 16 jul, 18:16, "Jose Alberto" wrote:
> Entonces no creo que te merezca mucho la pena usar LinQ.

Yo en realidad en general le veo pocas ventajas a este famoso Linq para Sql
y menos como alternativa agil.



La idea era buena: integrar las consultas en el lenguaje (aunque se
hayan olvidado de las instrucciones de actualización :-O), lo que pasa
es que está muy mal realizada.

Pero todavía puede tener su utilidad, sobre todo cuando solo quieres
leer datos y no actualizarlos. Si es que consigues acostumbrarte a la
fealdad de la sintaxis.


Saludos
Alfredo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida