Dapper ORM으로 작업할 때 IN 절이 포함된 쿼리를 접하는 것이 일반적입니다. 그러나 IN 절의 값이 비즈니스 로직에서 동적으로 생성되는 경우 이러한 쿼리를 구성하는 최선의 접근 방식이 궁금할 수 있습니다.
사용된 한 가지 방법은 문자열 연결이지만 이는 번거로울 수 있습니다. SQL 주입 취약점에 취약합니다. 이러한 문제를 방지하기 위해 Dapper는 IN 절에 대한 매개변수를 지정할 수 있는 고급 매개변수 매핑 기술을 제공합니다.
Dapper는 IN 절에 대한 매개변수 사용을 직접 지원합니다. 이 기능을 사용하려면 다음 단계를 따르세요.
string sql = "SELECT * FROM SomeTable WHERE id IN @ids";
var parameters = new { ids = new[] { 1, 2, 3, 4, 5 } };
var results = conn.Query(sql, parameters);
이 접근 방식은 문자열 연결보다 더 간결하고 안전하며 쉽게 지정할 수 있습니다. IN 절에 대한 동적 값 목록.
PostgreSQL을 사용하는 경우 IN 절의 구문이 약간 다릅니다. 매개변수 자리 표시자를 사용하는 대신 ANY 연산자를 사용하여 IN 절의 값을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
string sql = "SELECT * FROM SomeTable WHERE id = ANY(@ids)";
매개변수 개체를 그에 맞게 조정하는 것을 잊지 마세요.
var parameters = new { ids = new[] { 1, 2, 3, 4, 5 } };
위 내용은 동적으로 생성된 값과 함께 Dapper의 IN 절을 안전하게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!