대퍼가 테이블 이름을 바꿀 수 있습니까?

c# dapper

문제

Dapper-dot-net이 다음과 같은 쿼리에서 테이블 이름을 바꿀 수 있다고 예상했습니다.

connection.Query("SELECT * FROM @Table WHERE [Id] = @Id", new {Table = tb, Id = id});

그러나 그것은 테이블 이름을 대체하지 않는 것 같습니다. 그것은 예상되는 제한입니까?

수락 된 답변

"in"(dapper가 몇 가지 부두를 제공함)을 제외하고 dapper는 직접 ADO.NET 도구이며 쿼리를 변경하지 않습니다. 그래서 진짜 질문입니다 : SQL에서 테이블 이름을 매개 변수화 할 수 있습니까? 내가 아는 모든 데이터베이스에서 : 당신은 할 수 없습니다 - 그래서 그것은 유효하지 않습니다. Dapper는 그 문제를 해결하려고 시도하지 않습니다.

아마도 문자열을 고려해보십시오. 다음을 기억하십시오.

  • SQL 인젝션을 방지하기 위해 합법적 인 테이블 이름을 화이트리스트에 추가하는 방법
  • 테이블 이름 주위에 완전한 [square brackets] 표기법을 사용하여 가능한 모든 이름을 허용


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow