O ObjectContext só irá atualizar a mudança de referencia se o ObjectContext estiver vivo e rastreando as modificações na entidade.
Assim:
using(
ObjectContext context = new
ObjectContext()
){
Locacao
locacao =
contex.Locacoes.FirstOrDefault();
locacao.Livro = context.Livros.FirstOrDefault(livro => livro.Titulo = "Design Patterns");
context.SaveChanges();
}
Assim funciona pois o contexto está rastreando as modificações das entidades anexas ao contexto.
Se uma determinada entidade mudar suas referências e o contexto ao qual ela estava anexada não estiver mais vivo, o mesmo não tem suas referencias
atualizadas quando for reanexadas a outro contexto. Se você buscar a locação sobre um contexto dentro de um using, o livro sobre outro contexto dentro de um using, ao trabalhar alguma modificação de referencia anexe ambas
entidades a um terceiro contexto antes de faze-lo, pois dessa forma as entidades estão sendo rastreadas quanto a modificação.
Atenciosamente, Paulo R. Pereira de Souza
http://paulosouza.net
E-mail: paulorpereirasouza@hotmail.com.
