Удалить все записи из базы данных, используя LINQ to SQL - PullRequest
4 голосов
/ 25 марта 2010

Я использую MVC. Как удалить все записи из базы данных, используя LINQ to SQL? Пример кода будет с благодарностью.

Ответы [ 3 ]

7 голосов
/ 26 марта 2010

Учитывая, что вы имеете в виду Linq to SQL , я думаю, что невозможно сделать то, что вы хотите (очистить все объекты базы данных), только с одной командной строкой.

Вы можете использовать команду SQL truncate или delete для удаления каждой из ваших сущностей, используя DataContext.ExecuteCommand, следующим образом:

context.ExecuteCommand("DELETE FROM EntityName");

Или

context.ExecuteCommand("TRUNCATE TABLE EntityName");

Хотя вам все равно придется делать это для каждой из ваших сущностей и обращать внимание на отношения между сущностями (внешние ключи).

Другие ссылки:

6 голосов
/ 25 марта 2010

Если вы хотите удалить все записи из таблицы, вы делаете:

context.Entities.DeleteAllOnSubmit(dc.Entities);

DeleteAllOnSubmit принимает перечисляемую коллекцию, и хотя я не пробовал ее, она должна поддерживать это (так как dc.Entities - Таблица), которая должна удалять все сущности.

Вы должны сделать это для всех таблиц; Вы не можете просто выполнить одну команду, чтобы сделать это. В качестве альтернативы, вы можете создать процедуру со всеми удаляемыми объектами и просто выполнить ее, добавив proc в список методов.

Кроме того, следует отметить, что быстрее отбрасывать и воссоздавать таблицы в базе данных, чем фактически выполнять все эти удаления, к вашему сведению, если у вас достаточно большой набор результатов в БД.

0 голосов
/ 26 марта 2010

вы не можете использовать linq для этого, так как linq - это просто язык запросов, а не язык манипулирования данными. вместо этого используйте dataadapter или createtatement или sql для этой задачи.

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