2010-06-28 8 views
1

LINQ-to-SQL을 사용하는 웹 응용 프로그램이 있습니다. LINQ 명령은 다른 스레드에서 실행되는 전혀 다른 쿼리에 의해 반환되는 것으로 가정되는 데이터를 검색하는 매우 이상한 문제가 있습니다. 이것의 원인이 무엇일까요?LINQ-to-SQL 다른 쿼리에서 데이터 검색 중!

특히 사용자는 컴퓨터에서 응용 프로그램에 액세스하여 특정 페이지를 엽니 다. 동시에 다른 사용자가 자신의 (다른) 컴퓨터에서 다른 페이지에 액세스합니다. 다른 하나는 매우 다른 테이블에서 오는 첫 번째 데이터를 반환하는 반면 쿼리 중 하나는 예외를 throw합니다!

우리는이 두 명의 사용자가 응용 프로그램에 스트레스를 가할 때마다 항상 재현 할 수 있습니다. 체크했는데 어떤 종류의 공유 ​​변수도 보이지 않습니다. 그밖에 또 다른 문제가있을 수 있습니까? 나는 무엇을 찾고 있어야 하는가?

귀하의 도움은 정말로 감사하겠습니다.

답변

1

연결과 같은 소리가 재사용되고 있습니다. 캐시하지 않고 항상 올바르게 생성하고 해제해야합니다 (예 : this sample).

+0

그게 내가 대부분의 시간을 조사하려고 노력한 것이지만, 헛된 것입니다. 나는 (페이지 중 하나에 대한) 모든 요청과 함께 새로운'DataContext'를 만들려고 시도했지만, 문제를 해결하지는 못했습니다. 다른 곳을 추천 해 주시겠습니까? –

+0

각 호출에 대해'DataContext'를 다시 만들고 싶지는 않습니다. 이것은 거의 "싱글 톤"이어야합니다. 즉, 데이터베이스에 연결하는 데 사용하는 코드는 무엇입니까? – Lucero

+0

'DataContext'는 (Unity를 사용하여) 주입되었지만 테스트 목적으로 변경했습니다. 데이터베이스에 연결하기 위해 간단히 연결 문자열을 취하는'SqlConnection'을 사용하여'DataContext'를 생성합니다. 그러나 새 연결을 만들고 닫을 때마다 ADO.NET을 직접 사용하는 응용 프로그램의 다른 부분이 있습니다. –

0

이것이 linq 문제가 아닌 세션 문제가 아닌지 확인하십시오. 하나의 asp.net 세션에서 요청했지만 다른 곳으로 전달 된 데이터는 무언가가 거기에서 섞여 나오는 것처럼 들립니다.

관련 문제