#aspnet #entity_framework #aspnet_mvc #sql
Не получается удалить записи в таблице! Нужно удалить все комментарии у которых item_id=6. Этих комментарий штук 8. Пробую удалить таким образом: IQueryablequery = (from del in db.Comments where del.item_id == 6 select del); db.DeleteObject(query);//ругается тут Но пишет что: Не удалось удалить объект, поскольку он не найден в ObjectStateManager. однако, если я хочу удалить один комментарий, т.е. так: Comment cquery = (from del in db.Comments where del.id == 4 select del).First(); то получается. Как мне правильно написать, чтобы не применять foreach и подобные вещи, а удалить сразу все комментарии, одним sql запросом (или командой, как правильнее сказать)?
Ответы
Ответ 1
var query = from com in db.Comments where com.item_id == 6 select com; foreach (Comment comment in query) { // тут будет 1 запрос на выборку из бд db.Comments.Remove(comment); } db.SaveChanges(); // тут будет delete [dbo].[Comments] where ([Id] = 6) То есть удаление всех комментариев с item_id=6 произойдет с помощью одного SQL запросаОтвет 2
А зачем foreach ? Можно же сделать так: context.YourTable.RemoveRange(context.YourTable); context.SaveChanges();
Комментариев нет:
Отправить комментарий