Есть БД MS SQL и WPF проект. Для работы с этой БД используется Entity Framework Core. Он сгенерировал для каждой таблицы классы, нас в этом вопросе будет интересовать класс Сотрудник - Employees. При создании нового сотрудника перед сохранением требуется сделать проверку, правильно ли заполнены все поля.
Используется паттерн MVVM и при создании ViewModel, которая является визуальной страницей создания сотрудника, в нее передается новый экземпляр класса Employees (_emp) и экземпляр контекста (_context, чтобы как раз производить сохранение в базу). Через биндинг все поля страницы связаны с этим _emp и сохранение проводится так:
_context.Employees.Add(_emp);
_context.SaveChanges();
Хотелось бы иметь возможность валидировать как-то так:
if (_emp.IsValid())
{
_context.Employees.Add(_emp);
_context.SaveChanges();
}
Но не знаю, как лучше. Если править код Employees, то правки сотрутся, если потребуется перегенерировать таблицы EF. Думал еще сделать через методы расширения, но добавлять статические классы как-то не особо хочется, потому что они постоянно будут висеть в памяти. Можно создать отдельные классы для валидации и передавать _emp в метод валидации как аргумент. Но может быть есть какой-нибудь способ все-таки сделать валидацию в самом классе сотрудника и чтоб она не затерлась?