Daniel,
Se você não estiver trabalhando com WCF, com uma arquitetura distribuída, tem duas coisas para te dizer:
1) Primeiro é recomendado trabalhar com o contexto EF por formulário, justamente para não ter o problema que você citou (Formulário 1 começa a edição de um objeto e faz uma tentativa de salvar, mas
esse objeto deixa o contexto em uma situação invalida, formulário 2 edita outro objeto e tenta salvar, mas não consegue pois o contexto esta corrompido com a edição do objeto editado no formulário 1), caso um
formulário tenha afinidade com outro, ai nessa situação é provável que você compartilhe o contexto entre estes dois formulários.
2) Quanto ao cancelamento da edição de um objeto de uma olhada na interface IEditableObject, essa interface serve justamente para casos de cancelamento de edição de objetos complexos, aonde o cenário prevê o cancelamento
da edição.
Atenciosamente, Paulo R. Pereira de Souza
http://paulosouza.net
E-mail: paulorpereirasouza@hotmail.com.
