Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2011, 13:08
osvier
 
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.