Can Dapper batch un set di chiamate proc memorizzate? Vedo che supporta più risultati nella documentazione, ma non sono sicuro che sia possibile eseguire più chiamate proc memorizzate utilizzando Dapper.Can Dapper può eseguire un batch di chiamate proc memorizzate?
7
A
risposta
9
Dapper supporta i comandi di dosaggio per la stored procedure:
connection.Execute("create table #t (i int)");
connection.Execute("create proC#spInsert @i int as insert #t values (@i)");
connection.Execute("#spInsert", new[] { new { i = 1 }, new {i = 2}, new {i = 3} },
commandType: CommandType.StoredProcedure);
var nums = connection.Query<int>("select * from #t order by i").ToList();
nums[0].IsEqualTo(1);
nums[1].IsEqualTo(2);
nums[2].IsEqualTo(3);
Il codice di cui sopra riutilizza l'IDbCommand con il testo #spInsert
, 3 volte. Ciò rende gli inserti di dosaggio un po 'più efficienti.
In generale, se ci si preoccupa del perfetto a questo livello, si effettua il wrapping della chiamata batch in una transazione.
supporti Inoltre Dapper qualunque partita si decide di inviarlo:
connection.Execute(@"
exeC#spInsert @i = @one
exeC#spInsert @i = @two
exeC#spInsert @i = @three",
new { one = 1, two = 2, three = 3 });
che causerebbe tre file da inserire.
Inoltre, se #spInsert
ha restituito un set di risultati, è possibile utilizzare QueryMultiple
per eseguire il batch, in modo da fornire 3 set di record da scorrere.
Problemi correlati
- 1. Can Dapper può restituire valori da una funzione SQL?
- 2. Can Autofac può eseguire automaticamente l'associazione automatica?
- 3. Can nginx può eseguire un comando unix in base all'URL?
- 4. qualcuno può dirmi come eseguire un file batch da Notepad ++
- 5. Un file Proc può contenere commenti?
- 6. Can ToArray() può generare un'eccezione?
- 7. Come posso trovare le chiamate di procedura memorizzate?
- 8. Can Node.js può invocare Chrome?
- 9. Can MongoDB può ordinare alfanumerico?
- 10. AsyncHttpClient può eseguire chiamate HTTP asincrone e non bloccanti?
- 11. Eseguire un file batch in una nuova finestra dal batch?
- 12. in Oracle JDBC è possibile memorizzare le chiamate di procedura memorizzate e recuperare i parametri OUT?
- 13. Can Applescript può inviare o inviare richieste?
- 14. Dapper. Cercapersone
- 15. Can ffmpeg può mostrare una barra di avanzamento?
- 16. Utilizzare CreateProcess per eseguire un file batch
- 17. Come eseguire un file batch da java?
- 18. Can mono eseguire applicazioni compilate framework.net (da un VS env)
- 19. Can node.js può essere eseguito in qualsiasi provider di hosting?
- 20. Dapper non può mappare colonne di bit in campi booleani
- 21. Can Backbone può eseguire il rendering di una raccolta in ordine inverso?
- 22. EF4 può supportare aggiornamenti batch?
- 23. Can EntryElement può essere multilinea su MonoTouch.Dialog?
- 24. Can CoreData può gestire sottoclassi polimorfiche?
- 25. Can $ _SERVER ['REMOTE_USER'] può essere falsificato?
- 26. Can nodejs può generare certificati SSL?
- 27. Can static_cast può generare un'eccezione in C++?
- 28. Can Pyserial può funzionare con dispositivi nascosti?
- 29. c'è un ExecuteScalar in Dapper
- 30. Can fscanf() può leggere lo spazio bianco?
Utilizzando un approccio simile per inviare 19 chiamate di procedura come una partita invece di eseguirle individualmente, ho ottenuto un miglioramento delle prestazioni di circa 3 volte (141s vs 421s). StringBuilder utilizzato per preparare la query e nomi @param_i da un elenco, dove i è l'indice. –