반응형
Dapper를 사용하여 한 번의 왕복에 여러 개의 SQL 문이 있습니다.그물
ADO.NET에는 여러 SQL 문을 한 번의 왕복으로 데이터베이스에 보내고 모든 문에 대한 결과를 받을 수 있는 좋은 기능이 있습니다.
var command = new SqlCommand("SELECT count(*) FROM TableA; SELECT count(*) FROM TableB;", connection);
using(var reader = command.ExecuteReader())
{
reader.Read();
resultA = reader.GetInt32(0);
reader.NextResult();
reader.Read();
resultB = reader.GetInt32(0);
}
Dapper에도 비슷한 기능이 있습니까?NET?
네, 더 데퍼QueryMultiple
확장을 통해 다음을 수행할 수 있습니다.
string query = @"SELECT COUNT(*) FROM TABLEA;
SELECT COUNT(*) FROM TABLEB";
using (var multi = connection.QueryMultiple(query, null))
{
int countA = multi.Read<int>().Single();
int countB = multi.Read<int>().Single();
}
Marc Gravell에 따르면 이것은 단일 배치에서 여러 쿼리를 실행하는 이상적인 방법입니다.
참고: Dapper 제작자 Sam Saffron은 사용에 대한 코드 샘플과 함께 자세한 설명을 게시했습니다.QueryMultiple
이를 달성하기 위해.
업데이트: Marc의 중요한 의견을 추가합니다.
참고: 1.5-ish(알파 빌드의 약간 이전 버전)부터는 Read()보다 더 편리하고 효율적인 ReadSingle() 방법이 있습니다.싱글()
var grid = connection.QueryMultiple("
SELECT COUNT(*) FROM TABLEA
SELECT COUNT(*) FROM TABLEB
SELECT COUNT(*) FROM TABLEC");
var lstResult = new List<int>();
var isNext = false;
do{
var first2 = info.Read<int>().Single();
lstResult.Add(first2);
isNext=info.IsConsumed;
}
while (!isNext);
언급URL : https://stackoverflow.com/questions/19337468/multiple-sql-statements-in-one-roundtrip-using-dapper-net
반응형
'source' 카테고리의 다른 글
돌연변이 및 동작을 통한 Vuex 빅 어레이 처리 (0) | 2023.06.28 |
---|---|
MongoEngine을 사용하여 정렬하시겠습니까? (0) | 2023.06.28 |
막대 순서 ggplot2 막대 그래프 (0) | 2023.06.28 |
변환 상태가 업데이트되지 않음 (0) | 2023.06.28 |
미래 수익률 값을 변수처럼 사용하는 방법 플롯 (0) | 2023.06.23 |