Linq To SQL, НЕ ВЫБИРАЙТЕ SCOPE_IDENTITY () после INSERT - PullRequest
3 голосов
/ 17 июня 2011

Это продолжение вопроса Остановить LINQ to SQL от выполнения операторов выбора после вставки , которая почему-то осталась без ответа.

Я вставляю 10000 строк в таблицу, основнойключ автоматически генерируется сервером SQL.После вставки строк мне не нужно постобрабатывать их, и программа закрывается.

При просмотре журнала LINQ to SQL для каждого INSERT генерируется последовательный оператор SELECT для SCOPE_IDENDITY ().Я чувствую, что это замедляет мою программу, и я хотел бы избавиться от нее.

Как мне ВСТАВИТЬ без немедленного SELECT?

1 Ответ

2 голосов
/ 17 июня 2011

Если вы беспокоитесь о производительности, я боюсь, что вы должны полностью изменить свой подход.

Linq to Sql не подходит для bulkinserts - как вы заметили, он вставляет их все по одному.

Поскольку вы не выполняете их постобработку, лучше использовать что-то вроде SqlBulkCopy. Это на порядок быстрее.

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