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:
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.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"));
Código:
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 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);
into ValoresArchivos
select from cursor
Alguien tiene alguna idea?
Estoy usando .NET fw 4.0, Enterprise Library 5.0 y Oracle
Muchas gracias.