|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Есть у меня в БД несколько одинаковых таблиц-справочников (ID, Name). Основное приложение в меню имеет пункты: "Редактировать справочник 1", 2, 3 и т.д., из которых должно открываться окно с ListView для просмотра, редактирования справочников. Вот так выглядит команда для одного из пунктов меню: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как указать вью-модели данные, с которыми будет идти работа? Если "vm.Data = dbContext.Dic1.Local", то как указать тип во вью-модели? Ведь "public List<object> Data" не подойдет, тогда я не смогу добавлять новые элементы в список/коллекцию на подобии Data.Add()... Пробовал еще так: сделать свой класс MyDic { int ID, string Name } и делать так: Код: c# 1.
но как тогда сохранять изменения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 18:39 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, Если у вас несколько однотипных таблиц, то может объединить их в одну ? На стороне клиента сделать SelectDictionaryQuery и UpdateDictionaryCommand. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2017, 13:21 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Объединить в одну? Как вариант... А без объединения таки? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2017, 14:18 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Qwe.Qwe1, авторПробовал еще так: сделать свой класс MyDic { int ID, string Name } и делать так: Да, именно так. Создаете общую модель для всех справочников и с ней работаете. авторно как тогда сохранять изменения? Если вы имеете ввиду "в какой справочник сохранять изменения", то: автор Код: c# 1.
Вы же знаете, откуда вы получили данные :) Туда же и сохраняйте. Сделайте метод SaveToDic1(IEnumerable<MyDic>), SaveToDic2() и т.д. Либо сохраните любым другим способом контекст (т.е. откуда вы получили данные). А вообще лучше все в одну таблицу, как вам и советовали ранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2017, 23:07 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Я вот так пытаюсь сохранять, но в БД изменений нет... Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2017, 22:42 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Твой dbContext о vm.Data ничегошеньки не знает, поэтому не может никак сохранить в ней изменения. Для него никаких изменений нет. Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 10:55 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Ну да, логично, а в этом и вопрос весь: во vm.Data я передал справочник, и в vm я хочу сохранять изменения. Код: c# 1.
- по сути это имитация добавления в справочник новой записи в дочернем окне (vm.Data прибинден к ListView)... Вот как сохранять? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 12:40 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Qwe.Qwe1Ну да, логично, а в этом и вопрос весь: во vm.Data я передал справочник, и в vm я хочу сохранять изменения. Код: c# 1.
- по сути это имитация добавления в справочник новой записи в дочернем окне (vm.Data прибинден к ListView)... Вот как сохранять? Тебе надо реализовать паттерн "репозиторий". P.S. Ты рано взялся за всё это. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 13:38 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Qwe.Qwe1Я вот так пытаюсь сохранять, но в БД изменений нет... Код: c# 1. 2. 3.
Вы точно используете EF ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 15:43 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Ну да )) А что? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 18:06 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Qwe.Qwe1Я вот так пытаюсь сохранять, но в БД изменений нет... Код: c# 1. 2. 3.
Вы создаете коллекцию, в которую потом добавляете элемент. Как коллекция связана с контекстом? Никак:) Подпишитесь на CollectionChanged и при событии добавления нового объекта добавляйте его в контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 19:36 |
|
EF и несколько одинаковых таблиц
|
|||
---|---|---|---|
#18+
Ну да, у меня получается новая коллекция, не привязанная к контексту. А зачем мне событие CollectionChanged? Можно как-то сделать, чтобы пользователь из этой новой коллекции наудалял элементов, надобавлял или изменил (переименовал) что-либо, а потом по кнопке Сохранить эта измененная коллекция бы скопом записывалась бы в БД. Ну как-то на подобии: dbContext.Dic1 = Data; //? dbContext.SaveChaged(); ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2017, 17:15 |
|
|
start [/forum/topic.php?fid=17&msg=39394527&tid=1349316]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 130ms |
0 / 0 |