#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. Вы можете посмотреть здесь .