Чтобы получить все изменения в контексте данных, вы можете позвонить
ChangeSet changes = dataContext.GetChangeSet();
// An IList<Object>
changes.Deletes;
changes.Inserts;
changes.Updates;
Что у меня есть, так это то, что у каждого объекта-значения есть метод validate. Я использую атрибуты для определения различных видов проверки. Причина, по которой я делаю это вручную, заключается в том, что если у меня есть число, которое может быть int в базе данных и коде, значение 1002 может быть недействительным, если я сохраню возраст. Так что я могу дать диапазон значений и т. Д. ,
Если каждый из ваших объектов-значений наследуется от базового объекта, это упрощает их итерацию. Предполагая, что у вас есть в базовом классе метод Validate.
Я бы сказал, чтобы это сработало, вам придется либо редактировать сгенерированный код, либо свернуть свои собственные объекты значений. Обычно я делаю свои собственные из-за того, как я использую их для проверки.