Вероятно, у вас должен быть первичный ключ на вашем столе. Это значительно облегчит работу с вашим столом. Если у вас нет первичного ключа, попробуйте найти подходящий ключ-кандидат для установки в качестве первичного ключа. Если у вас нет подходящих столбцов, возможно, вы захотите добавить автоматически инкрементный суррогатный ключ (в SQL Server он называется identity ). Если у вас уже есть первичный ключ, убедитесь, что классы LINQ to SQL обновлены.
Однако, если вы просто хотите удалить все значения, вы можете обнаружить, что этот метод слишком медленный. Альтернативой является непосредственное выполнение SQL с использованием DataContext.ExecuteCommand
:
database.ExecuteCommand("DELETE Contacts");
Это не требует, чтобы таблица имела первичный ключ. Обратите внимание, что это безвозвратно удалит все строки в вашей таблице, поэтому будьте осторожны. Еще быстрее работает команда TRUNCATE , но учтите, что для этого требуются более широкие права:
database.ExecuteCommand("TRUNCATE TABLE Contacts");
Опять же, будьте осторожны с этой командой. Это удалит все строки из вашей таблицы.