В моем приложении WPF MVVM я хотел бы, чтобы изменения в моих Entity Framework
классах сущностей автоматически сохранялись обратно в база данных. У меня было несколько идей по реализации этой функции, но ни одна из них не кажется оптимальной.
Вот мои текущие (неоптимальные) идеи: timer.Interval = TimeSpan.FromSeconds (1); timer.Tick + = (отправитель, аргументы) => Repository.SaveChanges (); timer.Start ();
Сохраните изменения в методе программы OnExit ()
.
защищенное переопределение void OnExit (ExitEventArgs e)
{
Repository.SaveChanges ();
base.OnExit (e);
}
Сохранять изменения каждый раз, когда OnPropertyChanged ()
вызывается на одной из моих Entities
:
защищенных виртуальных пустот OnPropertyChanged (строка propertyName)
{
Repository.SaveChanges ();
}
Комбинация 2 и 3 ; сохраните данные после подсчета произвольного количества изменений свойств, а также сохраните в OnExit ()
, чтобы уловить любые изменения, которые не достигли предела изменений:
const int limit = 5;
int changes = 0;
защищенная виртуальная пустота OnPropertyChanged (строка propertyName)
{
если (++ изменяется == ограничение)
{
Repository.SaveChanges ();
changes = 0;
}
}
Я полагаю, 1 & 3 - худшие из всех, и 2 (не уверен на 100%) не сохранят никаких изменений. если программа вылетает. 4 - мой предпочтительный вариант, поскольку он уравновешивает количество выполненных сохранений.
Итак, мой вопрос: исходя из вашего опыта или нет, как лучше всего подойти / решить эту проблему?
Заранее спасибо.