|
Модератор
|
||
Пример создания приложения "Работа с комнатами в студенческих общежитиях" [WPF, SQLite, Элд Хасп]30.12.2019, 12:08. Показов 112950. Ответов 54
Метки dbcontext, dbset, entity, entity framework, mvvv, sqlite, wpf, xml, xml сериализация (Все метки)
Тема из цикла Готовые решения, примеры и рекомендации начинающим на WPF [Элд Хасп]
Создана как продолжение темы WPF, DataGridComboBoxColumn (привязка к ObservableCollection и чтение из файла) от Valius.
2
|
||
| 30.12.2019, 12:08 | |
|
Ответы с готовыми решениями:
54
Пример создания приложения для тестирования [WPF, Элд Хасп] DynamicResource с привязываемым ключом на примере локализации приложения [WPF, Элд Хасп, DynamicResourceBinding] Создание приложения "Штатное Расписание" в паттерне MVVM [WPF, Элд Хасп] |
|
Модератор
|
|
| 11.02.2020, 10:14 [ТС] | |
|
Usaga, я обдумал вариант с раздельным хранением истории.
И как-то тоже не пришёл в голову вариант, как обойти возможное нарушение в таблице Person указана одна комната, а в истории последней записью идёт другая.Думал, сделать вместо Person.RoomID - ID записи из истории, но тоже нет гарантии, что этот ID будет указывать на последнюю запись. Алгоритмически самый верный вариант, как вы и сказали, это брать последнюю (по времени) запись в истории. Для удобства, наверное, надо отсортировать записи в истории по PersonID и Timestamp (по убыванию). И тогда выбирать первую (FirstOrDefault) по PersonID запись из истории. Что касается многопользовательской работы, то SQLite её поддерживает, судя по документации. Экспериментально пока не проверил.
0
|
|
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
||||
| 11.02.2020, 10:17 | ||||
|
1
|
||||
|
Модератор
|
||
| 11.02.2020, 10:47 [ТС] | ||
|
У "взрослых" блокируется только изменяемые записи. Для БД без сервера по другому, наверное, и не сделаешь. Осталось только разобраться с верификацией перед внесением изменений. Это же должна быть одна транзакция: блокировка БД, верификация, изменение, снятие блокировки. Надо разобраться как это делает SQLite.
0
|
||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
|||
| 11.02.2020, 10:49 | |||
|
1
|
|||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
|
| 11.02.2020, 12:34 | |
|
Элд Хасп, c EF это делается ТОЛЬКО через Concurrency Token. Других нормальных возможностей с этой ORM у вас нет.
1
|
|
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
||
| 12.02.2020, 06:48 | ||
|
0
|
||
|
8 / 6 / 4
Регистрация: 02.07.2019
Сообщений: 77
|
||
| 27.05.2020, 20:45 | ||
|
в VMClasses скопипастил даже 2 класса, ничего не помогает( Папку кэша проекта чистил, не помогает. Копирую из этой статьи, в вашем проекте на гитхаб есть отличия, но я до них не дошел еще. И сразу несколько непонятных для меня вопросов) Как я понял, DTO - это общий класс, хранимый в памяти. XML - классы нужны для сериализации/десериализации XML. Почему не сделать сразу класс, который можно сериализовать в XML? Очень сильно запутался, как такую логику только продумать можно, не то что реализовать... Так же не понял, зачем еще VM классы создавать. Уж если для XML свои классы, для БД тоже наверное свои потом будут. Почему же DTO (который хранится в памяти) сразу INPC не поддерживают? Мой проект: https://github.com/Kozlov-AE/StudentRooms
0
|
||
|
Модератор
|
||
| 27.05.2020, 21:04 [ТС] | ||
|
Не знаю насколько это влияет. Добавлено через 2 минуты Alessey, даже не так. У вас часть на Standard, часть на Framework. Добавлено через 1 минуту Насколько помню, проекты Framework видят Standard сборки, а наоборот - нет.
1
|
||
|
8 / 6 / 4
Регистрация: 02.07.2019
Сообщений: 77
|
||
| 27.05.2020, 21:09 | ||
|
0
|
||
|
Модератор
|
|||||||||
| 27.05.2020, 21:27 [ТС] | |||||||||
|
У
ICopy нет public
Тоже самое у IEquatableValuesДобавлено через 8 минут В концепции MVVM на уровне Model в основном применяются иммутабельные DTO. Добавлено через 1 минуту Мне удобнее сначала создать структуру данных (XML файл ил БД), а потом нужные под неё классы. Добавлено через 4 минуты Порог вхождения для этого примера выше чем для только начинающих на C#. Он рассчитан уже на тех кто хорошо ориентируется в C#, в ООП, имеет начальное представление о шаблонах проектирования приложений, более менее освоил базис WPF. Для более начального уровня, есть примеры других приложений по ссылке в подписи моего поста. Как сделать данную задачу ещё проще... не знаю. По сути я её писал и сам по ходу продолжал изучение. Это как бы не сколько учебник, а "записи с передовой".
1
|
|||||||||
|
Модератор
|
||
| 27.05.2020, 21:32 [ТС] | ||
|
И если потом во вне в этом экземпляре что-то изменится, то у Модели нет инструментов узнать об этом. В результате может получится, что объект хранящийся в Модели имеет не те значения которые по мнению Модели там должны быть. Это потенциальная дорога к багам. И на практике, я уже не раз с таким сталкивался, когда помогал находить и исправлять различные баги. А такой баг ещё и очень трудно выловить. Добавлено через 2 минуты По сути такое использование DTO типов проистекает из правил SOLID.
0
|
||
|
8 / 6 / 4
Регистрация: 02.07.2019
Сообщений: 77
|
||
| 27.05.2020, 21:37 | ||
|
Заработало. Я уж опечалился. Копался копался, а в итоге до самого интересного мог и не дойти)
Вы меня спасли, буду дальше печатать и копаться) Может чего прояснится к концу проекта)
0
|
||
|
Модератор
|
||
| 27.05.2020, 21:40 [ТС] | ||
|
По сути такое использование DTO типов проистекает из правил SOLID.
Будут проблемы - не стесняйтесь обращаться. Лучше сто раз спросить, чем сделать один раз неправильно.
0
|
||
| 27.05.2020, 21:40 | |
|
Библиотека элементов для реализации WPF MVVM Решений [WPF, Элд Хасп]
WPF конвертеры [Элд Хасп] WPF vs WinForms (для начинающих) [Элд Хасп]
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|