|
Entity Framework + MVVM + сохранить/отмена
|
|||
---|---|---|---|
#18+
Добрый день. Возникла необходимость сделать на работу базу клиентов. Выбор пал на C#+WPF+MVVM+EF6+Database First+MySQL. Половина работы уже сделана, но возникла проблема с редактированием данных с возможностью отмены, в частности это касается таблиц многие-ко-многим: у каждого клиента может быть несколько сотрудников, у каждого сотрудника может быть несколько клиентов. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Записи редактируются в отдельном окне с кнопками Сохранить/Отменить. Главный вопрос: подскажите как реализовать возможность отмены изменений вообще и с учетом отношений многие-ко-многим в частности? Это должно быть реализовано в MVVM или в EF? Подскажите как. Спасибо. В принципе это все, если кому интересно, ниже написал как я это делал. Контекст создается один раз в Repository. 1. Для отмены изменений использовал EntityState в EF Код: c# 1. 2. 3. 4. 5. 6.
Все хорошо, но для отношений *-* это не подходит. 2. Пробовал получить копию редактируемой записи из контекста Код: c# 1. 2. 3.
но возникает проблема с context.Customer.Attach(copyCustomer) - там осталась оригинальная запись с таким же ID. context.Customer.Add(copyCustomer) дублирует записи. 3. Serialization и Reflection вызывают исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2014, 15:07 |
|
Entity Framework + MVVM + сохранить/отмена
|
|||
---|---|---|---|
#18+
evm78, evm78Контекст создается один раз в Repository. Я бы отказался от такого подхода. По крайней мере для окон редактирования создавайте свой контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2014, 16:03 |
|
Entity Framework + MVVM + сохранить/отмена
|
|||
---|---|---|---|
#18+
Lelouch, Спасибо. Т.е. для окна редактирования создать временный контекст, если нажата Сохранить-записать через него в базу и считать редактируемую запись из базы в основном контексте? Или я неправильно вас понял или придется согласиться с лишней операцией чтения при редактировании. Классы сущностей EF в моем MVVM выступает моделью. Постоянный контекст использую из-за возможности видеть изменения в связанных сущностей при изменении связей (заменили у клиента сотрудника и при переходе в закладку Сотрудники через привязку WPF обновляется список связанных клиентов) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2014, 17:18 |
|
|
start [/forum/topic.php?fid=17&msg=38673188&tid=1349758]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 489ms |
0 / 0 |