Dapper Tutorial Dapper - QuerySingle
기술
QuerySingle 메서드는 IDbConnection 유형의 모든 개체에서 호출 할 수있는 확장 메서드입니다. 쿼리를 실행하고 첫 번째 결과를 매핑 할 수 있으며 시퀀스에 정확히 하나의 요소가 없으면 예외를 throw합니다.
결과는 다음에 매핑 될 수 있습니다.
매개 변수
다음 표에서는 QuerySingle 메서드의 다른 매개 변수를 보여줍니다.
이름 | 기술 |
---|---|
SQL | 실행할 쿼리입니다. |
매개 변수 | 쿼리 매개 변수 (기본값 = null)입니다. |
트랜잭션 | 사용할 트랜잭션 (기본값 = null)입니다. |
commandTimeout | 명령 timeout (기본값 = null) |
commandType | 명령 유형 (기본값 = null) |
첫째, 싱글 & 디폴트
올바른 방법을 사용하도록주의하십시오. First & Single 방법은 매우 다릅니다.
결과 | 아이템 없음 | 하나의 항목 | 많은 품목 |
---|---|---|---|
먼저 | 예외 | 목 | 첫 번째 항목 |
단일 | 예외 | 목 | 예외 |
FirstOrDefault | 태만 | 목 | 첫 번째 항목 |
SingleOrDefault | 태만 | 목 | 예외 |
예 - 익명 쿼리
쿼리를 실행하고 첫 번째 결과를 동적 목록에 매핑하고 시퀀스에 정확히 하나의 요소가 없으면 예외를 throw합니다.
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;"; using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools())) { var orderDetail = connection.QuerySingle(sql, new {OrderDetailID = 1}); FiddleHelper.WriteTable(orderDetail); }
include component-try-it.html href = 'https : //dotnetfiddle.net/uEq0HC'%}
보기 - 강력한 형식의 쿼리
쿼리를 실행하고 첫 번째 결과를 강력한 형식의 목록에 매핑하고 시퀀스에 정확히 하나의 요소가 없으면 예외를 throw합니다.
string sql = "SELECT * FROM OrderDetails WHERE OrderDetailID = @OrderDetailID;"; using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools())) { var orderDetail = connection.QuerySingle<OrderDetail>(sql, new {OrderDetailID = 1}); FiddleHelper.WriteTable(new List<OrderDetail>() { orderDetail }); }
include component-try-it.html href = 'https : //dotnetfiddle.net/vnkv7q'%}