C # Linq видит Аудит Выход из системы после каждого чтения - PullRequest
1 голос
/ 31 марта 2009

Это не Пул соединений SQL и аудит Вход / Выход из системы .

У меня есть приложение на C # .NET 3.5, которое обновляет около 30 тыс. Записей в SQL 2008 в локальной базе данных.

Логика заключается в том, что сначала он проверяет, существует ли запись SingleOrDefault (p => p.stock = stock && p.number = number), и добавляет запись или обновляет ее.

Я сосредоточен только на чтениях с использованием SingleOrDefault.

Я создал файл datacontext с помощью SQLMetal.exe.

После каждого чтения я вижу в SQL Profiler:
Выход из системы аудита (1300 операций чтения)
RPC: завершено sp_reset_connection
Аудит Вход
RPC: Завершено sp_executesql 'select etc ...'

Я создал новый проект на другом компьютере, используя 2005 и другую базу данных, но получил другие результаты.
Аудит Вход
RPC: Завершено sp_execute sql ...
RPC: Завершено sp_execute sql ...
RPC: Завершено sp_execute sql ...
...

Есть идеи?

1 Ответ

1 голос
/ 14 августа 2009

Упаковка всего в объект TransactionState решила эту проблему для меня. Например:

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

   ts.Complete();
}

Обратите внимание, что я сделал это, хотя выполнял только чтение базы данных.

Также обратите внимание, что вы должны добавить ссылку на System.Transactions в ваш проект, если его там еще нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...