Как мне очистить все строки из таблицы с помощью Entity Framework Core?

#asp.net-core #.net-core #entity-framework-core

#asp.net-core #.net-core #entity-framework-core

Вопрос:

Новое в Entity Framework Core. Как мне очистить все строки из таблицы?

Я искал и нашел следующее решение:

 _context.Database.ExecuteSqlCommand("TRUNCATE TABLE[TableName]");
 

К сожалению, использование ExecuteSqlCommand выдает ошибку компилятора.

Мне не хватает пространства имен или есть другой способ сделать это?

Спасибо, ДжонБ

Комментарии:

1. Привет @JohnB, вы решили эту проблему? Есть ли какое-либо другое решение?

Ответ №1:

ExecuteSqlCommand устарело, вы можете увидеть подробности здесь.

Для выполнения SQL-запросов с использованием простых строк вместо этого используйте ExecuteSqlRaw . Для выполнения SQL-запросов с использованием синтаксиса интерполированной строки для создания параметров вместо этого используйте ExecuteSqlInterpolated .

Итак, вы можете использовать:

  _context.Database.ExecuteSqlRaw("TRUNCATE TABLE[TableName]");
 

Комментарии:

1. Я не вижу ни ExecuteRawSQL(), ни ExecuteSqlCommand() как часть вызовов, доступных из _context.Database . Я пропускаю пакет NuGet или использую statetement? В настоящее время у меня есть EFC, EFC.Design, EFC. Установлены пакеты Relational и EFC.Sqlite.

2. Я использую EFC 5.0

3. Я включил этот пакет, но все равно получаю ошибку компилятора: ‘DatabaseFacade’ не содержит определения для ‘ExecuteSQLRaw’ и нет доступного метода расширения ‘ExecuteSQLRaw’

4. Вы можете посмотреть здесь .