Если я выберу много строк из одной таблицы с одним экземпляром DataContext. И затем я могу внести некоторые изменения в свойствах в строках, могу ли я внести изменения в базу данных только для одной из выбранных строк?Внесите изменения только одного объекта
2
A
ответ
4
Да, вы можете.
Прежде всего вам нужно выделить объекты, которые вы хотите отменить. Затем вы можете использовать свой класс DataContext для переопределения этих объектов со значениями из базы данных.
MyEntity e1, e2, e3 // changed entities
...
// keep the changes only for e3
List<MyEntity> undoList = new List<MyEntity>();
undoList.Add(e1);
undoList.Add(e2);
myDataContext.Refresh(RefreshMode.OverwriteCurrentValues, undoList);
myDataContext.SubmitChanges();
EDIT:
Вы можете отслеживать все измененные объекты в DataContext, как это:
MyEntity changedEntityToSubmit; // first you need to know what is the entity you need to submit.
List<object> allChangedEntities = new List<object>(myDataContext.GetChangeSet().Updates);
allChangedEntities.Remove(changedEntityToSubmit);
myDataContext.Refresh(RefreshMode.OverwriteCurrentValues, allChangedEntities);
myDataContext.SubmitChanges();
Этот код только с учетом обновлений. Вам также может потребоваться рассмотреть изменения в вставках и удалениях. Это зависит от вас.
Смежные вопросы
- 1. Внесите изменения в админ-генератор
- 2. Внесите изменения в Карт Google
- 3. Закупил репо на github, но внесите изменения только для меня
- 4. Внесите изменения в change_form.html в django admin
- 5. Внесите изменения в приложение без обновления
- 6. Внесите изменения в код для загрузки вложений
- 7. Внесите изменения на веб-страницу и сохраните изменения локально
- 8. Внесите изменения в файл (SED, AWK)
- 9. Внесите изменения в кэшированную модель с ассоциациями
- 10. Внесите изменения в исходный код Tomcat 8.5.4
- 11. GIT - Внесите изменения в историю создания
- 12. THREE.js - Изменить свойство одного объекта, все изменения объекта
- 13. несколько объектов против Изменения одного объекта
- 14. Python: изменения данных одного объекта меняют другой
- 15. пакетное переименование для изменения только одного символа
- 16. SqlDependency change работают только для одного изменения
- 17. Внесите изменения в (Ui ASP.NET MVC кендо) Сетка
- 18. Прототип, примененный только для одного объекта
- 19. Rails: fields_ только для одного объекта
- 20. Создание класса только для одного объекта
- 21. Определение массива только одного объекта в YAML
- 22. Используется ли @Autowired только для одного объекта?
- 23. EF Сохранение только одного дочернего объекта
- 24. Построение одного объекта только с одним ресурсом $
- 25. Linq За исключением рассмотрения только одного объекта
- 26. Внесите постоянные изменения на веб-страницу, используя веб-страницу
- 27. Внесите изменения в cpumask, используя sched_setaffinity(), сразу же выполните
- 28. Внесите изменения в книгу Excel, которые открывают мой запрос
- 29. Внесите отметку на фото
- 30. Внесите типизированное ограниченное имущество
Спасибо за ответ, его точный ответ на мой вопрос. Но на практике этот метод не так полезен, потому что, если я не знаю всех объектов, отслеживаемых с помощью DataContext, я не могу гарантировать, что только указанный объект будет отправлен. Но у вас есть +1 очко. – TcKs 2008-11-14 07:46:40