Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Update Masivo con Linq

481 views
Skip to first unread message

Aventurero

unread,
May 12, 2009, 2:42:57 PM5/12/09
to
Buenas tardes.
Esta vez para consultar acerca de actualizaci�n de muchos registros con
Linq.
Las p�ginas en asp.net 3.5 con vb, y SQL Server 2005.
En una de las p�ginas leo un archivo plano. El cual tiene registros de
Clientes. La mayor�a de estos existe en la Tabla TClientes con la llave
Identificaci�n.
Es necesario actualizar cada uno de los registros.
Como hago para hacer de forma masiva y no uno por uno, utilizando Linq to
SQL.

Gracias anticipadas.

Atentamente,

Aventurero


Alberto Poblacion

unread,
May 13, 2009, 2:17:16 AM5/13/09
to
"Aventurero" <granc...@hotmail.com> wrote in message
news:e1%23Y6Fz0...@TK2MSFTNGP03.phx.gbl...

> Esta vez para consultar acerca de actualizaci�n de muchos registros con
> Linq.
> Las p�ginas en asp.net 3.5 con vb, y SQL Server 2005.
> En una de las p�ginas leo un archivo plano. El cual tiene registros de
> Clientes. La mayor�a de estos existe en la Tabla TClientes con la llave
> Identificaci�n.
> Es necesario actualizar cada uno de los registros.
> Como hago para hacer de forma masiva y no uno por uno, utilizando Linq to
> SQL.


En LINQ no tienes nada para actualizaciones "masivas". Al final, vas a
estar manipulando los clientes uno por uno. Tendr�s que ir creando objetos
del tipo TCliente, rellenarles todas las propiedades, hacer un .Add para
a�adirlos a la tabla del DataContext, y al final hacerle un .SaveChanges()
para que se graben. El proceso viene a ser muy similar al que se hac�a
(cuando no ten�amos LINQ) con los DataSets, en que carg�bamos todos los
datos dentro de un DataSet y luego hac�amos un .Update con un DataAdapter
para enviarlos al servidor. Estos mecanismos no son buenos para inserciones
masivas, porque requieren primero almacenar los datos en memoria y luego
env�an internamente un INSERT al servidor por cada registro.
Sugiero que para esta inserci�n masiva de Clientes te saltes el LINQ y
uses alg�n m�todo m�s directo, tal como una sentencia BULK INSERT (que puede
leer directamente el archivo plano en el servidor), o un objeto SqlBulkCopy
si quieres hacerlo con el SqlClient.

0 new messages