powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
9 сообщений из 9, страница 1 из 1
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582478
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверял что после изменения в гриде данные так же менялись и в ObservableCollection во ViewModel, однако после подключения к ДБ и вызова db.SaveChanges() данные не сохраняются вот ViewModel:
Код: 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.
public class MeasurementWindowViewModel: ViewModelBase
    {
        ServiceDAL _db;
        public ObservableCollection<Measurement> ItemsList
        { get; private set; }
        public RelayCommand _saveCommand;
        public MeasurementWindowViewModel()
        {
            _db = new ServiceDAL();
            ItemsList = new ObservableCollection<Measurement>(_db.GetAllMeasurement());
        }
        public RelayCommand SaveCommand
        {
            get
            {
                return _saveCommand ?? (_saveCommand = new RelayCommand(this.SaveItems));
            }
        }

        private void SaveItems(object obj)
        {
            _db.Save();
        }
    } 



Вот метод сохранения:
Код: c#
1.
2.
3.
4.
5.
6.
7.
public void Save()
        {
            using (var db = new ServiceContainer())
            {
                db.SaveChanges();
            }
        }



Вот привязка к гриду:
Код: xml
1.
2.
3.
4.
5.
6.
<DataGrid Grid.Row="0" ItemsSource="{Binding ItemsList}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="№" Binding="{Binding Path = Id, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
                <DataGridTextColumn Header="Название" Binding="{Binding Path = Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
            </DataGrid.Columns>
</DataGrid>
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582526
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если попроще, то...


Вот метод сохранения:

public void Save()
{

_db.SaveChanges();

}
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582527
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мил. чел., удовлетвори любопытство - в рамках чего у тебя такая задача стоит?
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582531
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Monochromatique, скажем так я новичок в wpf - mvvm, на работе попросили написать прогу что то типо книги покупок, ну и вот застрял на первом же окне, дабы не плодить разных диалоговых окон решил замутить редактирование и добавление прямо в гриде, в частности данное окно это окно редактирования единиц измерения
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582541
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Monochromatique, вот пример из книги:
Код: c#
1.
2.
3.
4.
5.
6.
7.
using (PEF context = new PEF())
{
  var contact = context.Contacts.First();
  contact.FirstName = "Julia";
  contact.ModifiedDate = DateTime.Now;
  context.SaveChanges();
}


а вот я выгружаю набор объектов:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public IList<Measurement> GetAllMeasurement()
        {
            IList<Measurement> result;
            using (var db = new ServiceContainer())
            {
                result = db.MeasurementSet.ToList(); 
            }
            return result;
        }


т.е. по существу тоже самое, выбрали, изменили и сохранили, но увы почему то не пашет.
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582574
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
megazoid007замутить редактирование и добавление прямо в гриде

Рука-лицо.

Короче - я тебе во втором посте написал. И WPF/MVVM тут не причем.

По твоему примеру - у тебя контекст отслеживает объекты, которые ты создаешь/грузишь с его помощью.
И в примере из книги это видно.

А ты - уничтожаешь контекст, а потом создаешь новый. А новый ничего не знает, что ты там что то изменил.

Вот это:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
using (PEF context = new PEF())
{
  var contact = context.Contacts.First();
  contact.FirstName = "Julia";
  contact.ModifiedDate = DateTime.Now;
}

using (PEF context = new PEF())
{
  context.SaveChanges();
}



эквивалетно тому, что пытаешься сделать ты.
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582702
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Monochromatique, принимается ))), тогда есть какие то варианты выхода из этой ситуации ?
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582767
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как можно добавить во вновь созданный контекст ранее созданные объекты, с сохранением свойства State ну там Editted Deleted и пр. ?
...
Рейтинг: 0 / 0
WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
    #38582806
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Monochromatique, чет сразу затупил надо было убрать все using, как рас то про что вы говорили, так то все сохраняет:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
class ServiceDAL
    {
        private ServiceContainer db;
        public ServiceDAL()
        {
            db = new ServiceContainer();
        }        
        public IList<Measurement> GetAllMeasurement()
        {
            return db.MeasurementSet.ToList();
        }

        public void Save()
        {
            db.SaveChanges();
        }
    }



Однако теперь архитектурный вопрос, если я не уничтожаю контекст сохраняется ли подключение к базе данных, ли оно открывается и закрывается только в момент выборки, и как быть если ViewModel - ов много то естественно под каждый ViewModel создавать DAL класс как то не рационально, как в таком случае поступают стандартно ?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF + MVVM + EF как сохранить данные отредактированные в DataGrid ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]