powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFrameworkCore - как удалить все записи из таблицы?
4 сообщений из 4, страница 1 из 1
EntityFrameworkCore - как удалить все записи из таблицы?
    #39955311
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проект .Net Core 2.2
Задача - очистить таблицу перед заливкой ( просто удалить ВСЕ записи из таблицы )

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
                await _context.DbContext(async (context) =>
                {

                    try
                    {
                        // пользователь не имеет права транкейтить таблицы (изменить права пользователю нельзя)
                        //context.Database.ExecuteSqlCommand("TRUNCATE TABLE [cache].[Local]");

                        // гуглил так, но не получается - текст ошибки ниже
                        context.Local.Where(x => x.Id != null).DeleteFromQuery();

                       // как удалить все записи?

                    }
                    catch (Exception ex)
                    {
                        error = ErrorData.InternalError(ex.Message, null);
                        LogError(error);
                    }

                    await DetectAndSaveChanges(context);
                });



Error CS1061 'IQueryable<Local>' does not contain a definition for 'DeleteFromQuery' and no accessible extension method 'DeleteFromQuery' accepting a first argument of type 'IQueryable<Local>' could be found (are you missing a using directive or an assembly reference?)
...
Рейтинг: 0 / 0
EntityFrameworkCore - как удалить все записи из таблицы?
    #39955326
RegisteredUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот так вроде получилось.
а это единственный способ транкануть таблицу?
просто, хорошо, что в этой таблице у меня пара сотен записей,
а как поступать, если надо очистить таблицу на пару десятков миллионов записей?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
                await _context.DbContext(async (context) =>
                {
                    try
                    {
                        //context.Database.ExecuteSqlCommand("TRUNCATE TABLE [cache].[Local]");

                        var to_del = context.Local.Where(x => x.Id != null);
                        context.Local.RemoveRange(to_del);
                    }
                    catch (Exception ex)
                    {
                        error = ErrorData.InternalError(ex.Message, null);
                        LogError(error);
                    }


                    await DetectAndSaveChanges(context);
                });
...
Рейтинг: 0 / 0
EntityFrameworkCore - как удалить все записи из таблицы?
    #39955371
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RegisteredUser,

лучше выполнить SQL

DELETE FROM [TableName]
...
Рейтинг: 0 / 0
EntityFrameworkCore - как удалить все записи из таблицы?
    #39955517
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
RegisteredUser,

лучше выполнить SQL

DELETE FROM [TableName]


Или еще быстрее TRUNCATE TABLE. Но он не сработает если есть внешние ключи на эту таблицу.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFrameworkCore - как удалить все записи из таблицы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]