SQL 문을 실행하기 위해 DataContext.ExecuteQuery를 사용하는 ASP.NET 응용 프로그램에서 문제를 해결하려고합니다. 이 부분은 다음과 같습니다.DataContext.ExecuteQuery가 전체 where 문을 처리 할 수 있습니까
LEFT OUTER JOIN dbo.Contacts ON dbo.Accounts.SalesRepId = dbo.Contacts.ContactId WHERE " + string.Join(" AND ", whereClauses) + @"
여기서 "whereClauses"는 문자열 목록입니다. 이렇게하면 검색 기능이 쿼리에 구현됩니다. 문제는 분명히 쿼리에 오류가 발생하는 "O'Donnel"과 같은 문자열에 대해 열린 검색이 실행될 때 나타납니다. 이 문제를 해결하도록 요청 받았습니다. 내 접근 방식은 쿼리에서 "{0}"을 Where 문으로 대체 한 다음 ExecuteQuery 메서드의 매개 변수로 전달하는 것이 었습니다. 내가 달성 한 것은 :
LEFT OUTER JOIN dbo.Contacts ON dbo.Accounts.SalesRepId = dbo.Contacts.ContactId {0}
var where = "WHERE 1=1";
_db.ExecuteQuery<AccountModel>(query, where)
하지만 작동하지 않습니까? 그것은 모두를위한 단지 매개 변수 부분은 괜찮 어디 전체를 교체하는 경우 :
LEFT OUTER JOIN dbo.Contacts ON dbo.Accounts.SalesRepId = dbo.Contacts.ContactId WHERE 1={0}
var where = "1";
_db.ExecuteQuery<AccountModel>(query, where)
내 질문 - 동적으로 DataContext.ExecuteQuery 방법에 어디 문 전체를 주입하는 것이 가능하다, 아니면 특정 매개 변수를 전달할 수 있습니다 이 방법 만 사용 하시겠습니까?