검색어 매개 변수에 @ 대신 @를 사용합니다.

dapper sql-server

문제

dapper와 Oracle을 사용하는 비교적 큰 응용 프로그램이 있습니다. 이제 SQL Server를 지원하고 싶습니다.

문제는 모든 쿼리가 다음과 : 쓰여지고 @ 가 아니기 때문에 SQL Server가 불평합니다.

':'근처의 구문이 잘못되었습니다.

그것은 대체해야한다고 단정 말할 수 있나요 : 함께 @ 또는 내가 내 자신의 코드에 있음을해야합니까?

수락 된 답변

나는 이것이 사실상 직접적으로 불가능하다는 것을 알았다.

Dapper.net 오라클 매개 변수

오라클과 함께 Dapper 사용하기

중복해서 죄송합니다.


전문가 답변

이것은 내장되어 있지 않지만 사용자 정의 확장 메서드를 작성하고 필요한 모든 조정을 수행하여 상대적으로 간단하게 제공 할 수 있습니다.

public static IEnumerable<T> MyMagicQuery<T>(this IDbConnection conn,
    string query, object args = ...)
{
    query = RunSomeRegexReplace(query);
    return conn.Query<T>(query, args, ...);
}

그러나 이것에 대한 정규식은 특별히 과세되지 않지만 T / SQL과 PL / SQL은 모두 SQL의 다른 변형 입니다. 간단한 직접 번역이 주어지면 많은 기능이 전혀 작동하지 않습니다. 다른 기능이 작동하지만 다른 구문이 필요합니다. 세 번째 그룹의 기능은 구문 론적으로 작동하지만 RDBMS 특정 환경 설정을 사용하기 위해 다시 작성하지 않는 한 다른 결과 (예, 실제로)를 제공하거나 성능 특성이 매우 다를 수 있습니다.

근본적으로, RDBMS 간 변경은 @: 변경하는 것 이상의 의미가 있습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.