Редактировать: чтобы ответить на ваш вопрос в вашем посте (лучший способ установить bool IsCustomerInEditMode) -
Подписаться на событие entity.PropertyChanging, внутри него установить IsCustomerInEditMode == true;Подпишитесь на событие entity.PropertyChanged, в нем установите IsCustomerInEditMode == false;
Я думаю, InstanceOfYourCustomer.PropertyChanging и InstanceOfYourCustomer.PropertyChanged искомые события.Для каждого сгенерированного свойства в вашей сущности событие вызывается, если свойство изменяется (если только вы не используете частичные классы для добавления дополнительных свойств к вашей сущности, и в этом случае вам нужно будет добавить вызовы ReportPropertyChanging и ReportPropertyChanged в установщики этих свойств).
http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.structuralobject.propertychanged.aspx
http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.structuralobject.propertychanging.aspx
Я использую EF4 и смотрю на мой файл Model.Designer.cs ... все мои сущностисеттеры свойств вызывают ReportPropertyChanging и ReportPropertyChanged ..., которые будут запускать события PropertyChanging и PropertyChanged для вашей сущности, а аргументы даже скажут вам, какое конкретное свойство вызвало измененное событие.