|
6 / 6 / 1
Регистрация: 09.02.2012
Сообщений: 86
|
|||||||||||
Как обновить базу данных из DataGrid20.10.2012, 20:41. Показов 8616. Ответов 49
Метки нет (Все метки)
У меня есть выбранная из базы данных информация в DataGrid'е. А я хочу, чтобы если я что то изменю в какой либо строчке, то это обновится и в базе данных. Я использую LINQ. Вылавливаю событие изменения в строчке через SelectionChanged, т.е. данные будут обновляться при переключении строчки. По идее не очень то правильно, но другого, более подходящего, не нашёл. Как я понял, то мне надо как то получить выделенную строчку, её я как раз получу из события SelectionChanged. Потом мне надо как то пройтись по всей этой строчке, записать её в какой нибудь List, а потом врубить запрос и в нём из этого List'а обновить нужную строку. А как это сделать?
Моя табличка такова:
0
|
|||||||||||
| 20.10.2012, 20:41 | |
|
Ответы с готовыми решениями:
49
Как обновлять базу данных после редактирования DataGrid? DataGrid+ObjectDataProvider+DataTable после изменения источника обновить DataGrid Как правильно обновить DataGrid после добавления строки |
|
Модератор
|
||
| 17.09.2025, 22:25 | ||
|
В Модели может быть достаточно сложная своя логика не имеющая отношения к Хранилищу. В этом случае Репозиторий (в данном случае DbContext) обычно хоть и инкапсулируется внутри Модели, но всё равно выполняется в виде внутреннего отдельного слоя. Что-то в таком духе: Структура связей в WPF Решении
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 17.09.2025, 22:39 | |
|
репозитарий нужен, только если вы захотите когда-нибудь сменить ORM... (или уже под несколько ORM сделан проект)... иначе нет смысла его (репозитарий) делать
1
|
|
|
|
|||
| 17.09.2025, 23:19 | |||
|
Не по теме: мощно. я даже подписался на тему, чтобы кофе с попкорном потреблять под такие обсуждения. JeyCi, если слово одно - это не значит что речь об одном и том же. Контейнер у вас дома есть для мусора, для карандашей, для обеда. Тоже с Docker связано что ли? Если в Докере нужно что-то регистрировать и в приложении тоже есть регистрация, то это тоже не значит что это одно и тоже. Полезный комментарий закончен.
1
|
|||
|
Модератор
|
||
| 18.09.2025, 00:13 | ||
|
В MVVM паттерне требуется чтобы изменение состояния Модели его потребители могли отследить и чтобы состояние Модели можно было изменять только явно, контролируемым способом. Рисунок из моей ранней темы: Cущности Модели (принцип единой ответственности (SRP)) должны быть простыми DTO. Но если мы используем EF, то в нём сущности таковыми не являются, хотя и выглядят максимально близко к ним. Эти сущности отслеживаюся в DbContext. Это значит, что когда состояние сущности меняется кем-то из её потребителей (вплоть до View), то состояние Модели тоже меняется. Но сама модель об этом не знает. Например вы не можете подцепить на DbContext функцию автосохранения при изменении сущности. Ещё DbContext может менять состояние этих сущностей, даже если сущности "только для чтения" он их всё равно меняет через рефлексию. Но потребители не могут об этом узнать. Например, в WPF View привязки к свойствам изменённой сущности не обновятся. Чтобы решить эту проблему приходится в сущности внедрять INPC на все свойства сущности. Но это делает их избыточными с точки зрения функции Модели. Поэтому выбор такой: 1) "Срезать углы" - добавить в сущности INPC, добавить в View обработку ввода пользователя в вызов извещения Модели (для автосохранения, например) 2) Сделать все слои "дружественными" - то есть недостатки реализации известны, они делают взаимодействие небезопасным, но при разработке все риски контролируются и сознательно обходятся или контролируемо используются 3) Сделать над DbContext оболочку, которая возьмёт на себя функцию изоляции его внутренней логики. В MVC и MVP взаимодействие между слоями происходит несколько по иному. Поэтому для них в некоторых случаях можно сказать анти-паттерн Repository. Но для MVVM так не скажешь, на мой взгляд.
0
|
||
|
|
||
| 18.09.2025, 02:22 | ||
|
Отдельно по докеру и DI: - докер -- виртуализация окружения. Вы выделяете изолированное нечто для запускаемой программы, чтобы не конфликтовали устанавливаемые библиотеки, привязываемые порты и прочие радости девопса. Если сравнивать с реальным человеком, вы выделили этому человеку отдельное рабочее место. - DI, а точнее либы позволяющие это реализовывать -- инструмент упрощения написания кода. Не запуска уже готового, а процесс реализации хотелок. Продолжая аналогию выше вы человеку выдаете пневно-степлер под гвозди, вместо обычного молотка.
0
|
||
|
|
||
| 18.09.2025, 08:58 | ||
|
Вот структура моего проекта, шаблон MVVM 0. Model, классы DTO, работают сами по себе. 1. Model DataAccess, работает сама по себе. 2. Разные сервисы, работают сами по себе. 3. ViewModel - знает про 0, 1. 4. App - знает про всё, так как все слои через DI связываются в App. View знает про 0, 3.
0
|
||
|
|
||
| 18.09.2025, 09:19 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 22.09.2025, 11:49 | |
|
MVVMDiagramDesigner - здесь можно посмотреть пример с кодом
0
|
|
| 22.09.2025, 11:49 | |
|
Обновить строку в БД через DataGrid
Как обновить базу данных? Как обновить базу данных? обновить базу данных по инету Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|