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.