2014-01-21 1 views
2

Context.SaveChanges()에 의해 생성 된 SQL 쿼리는 어떻게 얻을 수 있습니까? 명령. 왜냐하면 사용자는 지역 기반에 삽입하는 대신 데이터 분배를위한 스크립트를 작성할 수있는 옵션이 있기 때문입니다.엔터티 프레임 워크 스크립트 생성

감사합니다.

업데이트 :

저는 WCF Data Services로 엔티티 프레임 워크를 사용하고 있습니다.

+0

단일 또는 적은 수의 쿼리 인 경우 SQL Server 프로파일 러에서 실행되는 정확한 쿼리를 볼 수 있고 복사 할 수 있습니다 (www.codeproject.com/Articles/21371/SQL-Server-Profiler-Step-by- 단계). 즉석에서 스크립트를 생성한다는 것은 확실하지 않습니다. – HockeyJ

+0

나는 엔티티 프레임 워크와 함께 일하고 있는데, 생성 된 SQL은 매우 복잡하다. – Mortalzera

+0

데이터를 가져 오는 (어쩌면 CSV이거나 원하는 경우) 표준 인터페이스를 사용하는 매우 간단한 소프트웨어를 제공해서는 안됩니까? 복잡한 SQL 스크립트를 DB에서 직접 실행하는 것을 원하지 않습니다. – HockeyJ

답변

0

내 솔루션입니다 : 보안 및 안정성이 필요한 경우 Wcf 데이터 서비스를 사용하지 마십시오. Wcf 서비스를 사용하므로 Wcf 서비스를 사용하여 자체 프레임 워크를 가질 수 있습니다. WCF 데이터 서비스는 충분히 성숙하지 않았습니다.

스크립트의 경우 iam이 stringbuilder와 문자열 연결을 사용합니다.

1

EF6을 사용하는 경우 DbContext.Database.Log을 사용할 수 있습니다. 예를 들어, 다음을 사용하여 SQL은 일부 성능 데이터를 따라 콘솔에 출력 될 것입니다 : 당신은 또한 당신이 실제로 변경 사항을 저장에서 DbContext.SaveChanges을 중지 할 경우 차단을 수행 할 수

Context.Database.Log = Console.WriteLine; 

.

로깅과 차단에 대한 정보는 this MSDN article에서 찾을 수 있습니다.

이전 버전을 사용하는 경우 this 또는 this 문서를 체크 아웃 할 수 있습니다.

+0

이 작업을 수행 할 수 있지만 WCF 데이터 서비스를 사용하고 있습니다.이 서비스는 매우 제한적입니다. 지금은 stringbuilder로 SQL 스크립트를 작성하고 있습니다 ... 네, 최선의 해결책은 아닙니다. – Mortalzera

+0

그런데 생성 된 쿼리는 매우 복잡하고 유지 관리가 거의 불가능합니다. – Mortalzera