2009-03-30 5 views
1

이것은 SQL Connection Pooling and Audit Login/Logout이 아닙니다.매번 읽은 후에 C# Linq 감사 로그 아웃이 표시됩니다.

로컬 데이터베이스의 SQL 2008에 약 30,000 개의 레코드를 업데이트하는 C# .NET 3.5 응용 프로그램이 있습니다.

로직은 먼저 레코드가 SingleOrDefault (p => p.stock = stock & & p.number = number)인지 확인하고 레코드 또는 업데이트를 추가합니다.

저는 SingleOrDefault를 사용하는 읽기에만 초점을 맞추고 있습니다.

SQLMetal.exe를 사용하여 datacontext 파일을 만들었습니다.
가 감사 로그 아웃 (1300 읽습니다)
RPC : 완료 sp_reset_connection
감사 로그인
RPC : 완료 sp_executesql을 '등 선택 ...'

I를 모든 후

내가 SQL 프로파일 러에서 볼 수 읽기 2005 년과 다른 데이터베이스를 사용하는 다른 컴퓨터에서 새 프로젝트를 만들었지 만 다른 결과를 얻었습니다.
감사 로그인
RPC : 완료 sp_execute 두 SQL ...
RPC : 완료 sp_execute 두의 SQL ...
RPC : 완료 sp_execute 두의 SQL ...
...

어떤 아이디어?

답변

1

TransactionState 개체의 모든 항목을 래핑하면이 문제가 해결됩니다. 나는 전용 데이터베이스 읽기 수행에도 불구하고 이런 짓을

using (TransactionScope ts = new TransactionScope()) 
{ 
    // do db stuff here 

    ts.Complete(); 
} 

참고 : 예를 들면.

System.Transactions에 대한 참조를 프로젝트에 추가해야합니다 (아직없는 경우).

관련 문제