Я работаю над приложением WPF, используя шаблон MVVM, также сначала я использую код EF для объектов базы данных.и из-за MVVM я использую AutoMapper для отображения объектов из базы данных «Модели» в «ViewModels».
Когда я обновляю сущность, мне нужно отобразить ее обратно из модели представления в модель и передать ее методу обновления
public void Update(TEntity entity)
{
TEntity databaseEntity = Context.Set<TEntity>().Find(entity.Id);
DbEntityEntry dbEntityEntry = Context.Entry(databaseEntity);
dbEntityEntry.CurrentValues.SetValues(entity);
dbEntityEntry.State = EntityState.Modified;
}
Проблема здесь в том, что мне нужно получать сущность каждый раз, когда яЯ хочу обновить его, и если у меня будет много объектов для обновления, это вызовет проблемы с производительностью.Я попытался использовать следующий код, но он не сработал, потому что автоматическое отображение создало новый экземпляр объекта, отличный от того, который был прикреплен с EF dbConext.
public void Update(TEntity entity)
{
DbEntityEntry<TEntity> dbEntityEntry = Context.Entry(entity);
dbEntityEntry.State = EntityState.Modified;
}
Я попытался справиться с этим, переопределив Equals иМетоды GetHashCode, но они также не работали.
Есть ли способ обработки объекта обновления без получения его из базы данных?
Спасибо.