Я пытаюсь придумать «валидатор изменений». Я использую фреймворк Entity в back-end и угловой в интерфейсе. Связь через WebApi. По многим причинам клиент присылает мне List<DepartmentSettingDto>
и другие свойства моего контроллера. Этот список может содержать множество объектов, которые не могут быть изменены пользователем. Итак, я не хочу обновлять базу данных, если DepartmentSetting
не имеет никаких изменений с данными из db. Я хочу иметь что-то вроде этого:Как определить, были ли внесены изменения в dto перед обновлением базы данных?
public void UpdateDepartmentsSettings(DepatmentsSettingsDto depatmentsSettings)
{
using (var transaction = new TransactionScope(TransactionScopeOption.RequiresNew
, new TransactionOptions {IsolationLevel = IsolationLevel.Serializable}))
{
foreach (var departmentSetting in DepatmentsSettingsDto.DepartmentSettings)
{
var currentSetting = _context.DepartmentSettings.Find(departmentSetting.Id)
if departmentSetting.Modified(currentSetting)
{
var newSetting = Mapper.Map<DepartmentSettingDto, DepartmentSetting>
(departmentSetting, currentSetting);
Mapper.Map(currentSetting, newSetting);
}
}
_context.SaveChanges();
transaction.Complete();
}
}
Можно ли написать метод расширения или что-то вроде этого, чтобы избежать сохранения немодифицированных изменений? Спасибо заранее!
Что с угловым тегом? – ryanyuyu
Возможно, справитесь с этим на передней панели и отправьте только те предметы, которые нуждаются в обновлении? http://stackoverflow.com/questions/17648822/how-to-save-rows-in-a-grid-that-i-made-a-change-to –