다른 것들 중에서 쿼리를 입력 할 때 실시간 검색 결과를 사용자에게 전달할 수 있어야하는 WinForms 응용 프로그램 용 쿼리 관리자를 작성하는 중입니다. (웹이 아닌 두꺼운 클라이언트 환경에서도 분명히 Google의 실제 결과를 생각해보십시오.) 검색 결과는 사용자 유형에 따라 도착하기 시작해야하기 때문에 더욱 구체적인 검색이 이루어 지므로 사용자가 더 구체적인 정보를 입력하는 동안 계속 실행중인 경우 쿼리를 취소 할 수 있기를 원합니다 (결과는 어쨌든, 단순히 버려짐).엔터티 프레임 워크 쿼리 취소하기
평범한 ADO.NET이라면 분명히 DbCommand.Cancel
기능을 사용할 수 있지만이 기능을 사용할 수는 있지만 데이터 액세스에는 EF4를 사용하고 있으며 취소 할 수있는 확실한 방법은없는 것 같습니다. 질문. 또한 Reflector의 System.Data.Entity를 열어 EntityCommand.Cancel
을 보면 docs에도 불구하고이 메서드를 호출하면 공급자 명령의 해당 Cancel
함수에 전달된다는 주장에도 불구하고 빈 몸체가 빈 것처럼 보입니다.
나는 단순히 기존 쿼리를 실행시키고 새로운 검색을 실행하기 위해 새로운 컨텍스트를 돌리는 것을 고려해 봤지만 (기존 쿼리가 끝나면 기존 쿼리를 삭제하는 것), 나는 하나의 클라이언트에 대한 생각이 싫다. 가장 최근의 결과에만 관심이있을 때 병렬 쿼리를 실행하는 수많은 데이터베이스 연결.
이 모든 것들이 EF 쿼리가 데이터베이스에 전달되면이를 취소 할 수있는 방법이 없다고 생각합니다. 그러나 여기있는 누군가가 간과 한 것을 지적 할 수 있기를 바랍니다.
TL/DR 버전 : 현재 실행중인 EF4 쿼리를 취소 할 수 있습니까?
내가 MSDN 포럼에서이 문제에 대해 질문을했다 : 단순히 현재 쿼리를 중지하는 또 다른 방법은 내부의 열거입니다 http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/ d5ea8036-73e5-4566-9407-fa7a6a5fca3c이 원래 질문은 링크되어 있습니다.MS의 누군가가 다른 솔루션을 제공하기를 바랍니다. –