Foros del Web » Programación para mayores de 30 ;) » .NET »

Lista de entidades como parametro

Estas en el tema de Lista de entidades como parametro en el foro de .NET en Foros del Web. Hola a todos :) No estoy seguro si mi duda debe ir aquí en .NET o en Oracle, si no va aquí, disculpas. Este es ...
  #1 (permalink)  
Antiguo 20/04/2011, 13:08
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Pregunta Lista de entidades como parametro

Hola a todos :)

No estoy seguro si mi duda debe ir aquí en .NET o en Oracle, si no va aquí, disculpas.

Este es mi problema:

Tengo una tabla con los siguientes campos: ArchivoId, Etiqueta, Valor.

En mi código tengo una lista de Entidades:

Código:
List<ValoresArchivo> entidades = new List<ValoresArchivo>();
entidades.Add(new ValoresArchivo(1, 1, "valor1"));
entidades.Add(new ValoresArchivo(1, 2, "valor2"));
entidades.Add(new ValoresArchivo(1, 3, "valor3"));
entidades.Add(new ValoresArchivo(1, 4, "valor4"));
entidades.Add(new ValoresArchivo(1, 5, "valor5"));
En estos momentos, tengo un metodo que manda llamar un stored procedure que recibe 3 parametros: ArchivoId, Etiqueta, Valor, el problema es, que si tengo 20 entidades, tengo que correr ese insert 20 veces.

Código:
DbCommand cmd = DB.GetStoredProcCommand("AddValoresArchivo");
DB.AddInParameter(cmd, "pArchivoId", System.Data.DbType.Int32, valor.ArchivoId);
DB.AddInParameter(cmd, "pEtiqueta", System.Data.DbType.Int32, valor.EtiquetaId);
DB.AddInParameter(cmd, "pValor", System.Data.DbType.AnsiString, valor.Valor);

DB.ExecuteNonQuery(cmd);
Pero, me han comentado que es posible mandar la lista completa de entidades como parametro al stored procedure. Tal vez como cursor o algo asi. Y entonces hacer que el stored procedure ejecute algo asi como insert

into ValoresArchivos
select from cursor

Alguien tiene alguna idea?

Estoy usando .NET fw 4.0, Enterprise Library 5.0 y Oracle

Muchas gracias.

Etiquetas: lista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:12.