Associando entidades por ID no Entity Framework
Uma dica que pode ajudar muito:
Imagine que temos um relacionamento da tabela Mensagem com a Usuario, normalmente fariamos o seguinte para criar um relacionamento:
Mensagem mens = new Mensagem();
mens.Usuario = from us in contexto.UsuarioSet
where us.Id = 10
select us;
contexto.AddToMensagemSet(mens);
contexto.SaveChanges();
O problema é fazemos uma consulta no banco somente para criar o relacionamento, sendo que já temos a informação necessária para isso, o Id do Usuario.
Existe uma outra forma de fazer isso sem consultar o banco de dados:
Mensagem mens = new Mensagem();
mens.UsuarioReference.EntityKey = new EntityKey("YourEntitiesModel.UsuarioSet", "Id", 10);
contexto.AddToMensagemSet(mens);
contexto.SaveChanges();
Assim economizamos um Select, o que faz a diferença quando temos muitas chamadas