2009-12-17 2 views
1

DataContext 개체의 Log 속성을 통해 LINQ-to-SQL의 쿼리 출력을 로깅하면 다음과 비슷한 출력이 표시됩니다.LINQ-to-SQL 디버그 출력 실행?

SELECT [t0].[fullaname], [t0].[Worker], [t0].[Office] 
FROM [dbo].[Workers] AS [t0] 
WHERE [t0].[OfficeID] = @p0 
ORDER BY [t0].[Name] 
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [412] 
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1 

이 예제에서는 모든 Worker에 대한 일부 정보를 다시 가져옵니다. ID = 412가있는 사무실. 그러나이 출력은 LINQ가 출력하는 @p0 주석 형식 때문에 SQL Management Studio 쿼리 창에서 직접 실행되지 않습니다.

누구든지이 형식을 사용하는 저장 프로 시저가 있으면 실행할 수 있도록 알고 있습니까? 내가 paramaterized 쿼리 procs 보았다,하지만 어쩌면 나는 그것을 보지 않을거야. 프로 시저가 없다면이 형식을 "일반"SQL로 변환 할 파서를 작성하려고합니다 ...

고마워요!

참고 :

Help with SQL/LINQ Debugging에 나와있는 것처럼 @p0을 맨 위에 정의 할 수 있음을 알고 있습니다. 그러나 이러한 많은 쿼리에는 20 개의 매개 변수가 필요하므로 많이 달라집니다. 복사 및 붙여 넣기 작업 ....

답변

1

매개 변수 값을 수동으로 (또는 프로그래밍 방식으로 프로그래밍 방식으로) 입력하지 않고 위의 내용을 직접 실행할 방법이 없습니다.

SQL 프로파일 러를 사용하면 실행 가능한 동적 SQL 문을 얻을 수 있습니다.이 방법이 훨씬 더 나은 방법이지만, 이것이 항상 가능하지는 않습니다.

+0

예 - 프로파일 러를 항상 켤 수 있다고 생각합니다. 예를 들어 DebuggerWriter를 사용하여 개발 환경에서 바로 잡을 수있어 좋지만 http://www.u2u.info/Blogs/Kris /Lists/Posts/Post.aspx?ID=11 –

+0

필자는 검색을 수행하고 필요한 값을 대체하는 Regex 파서를 작성했습니다. 지금은 쉽게 실행할 수 있습니다. –