Carregar objetos no contexto

Cenário:

Aplicação em 3 camadas, sendo elas:

APRESENTAÇÃO:

this.Contrato = ContratoNegocio.Obter(codContrato);

NEGOCIO:

public Contrato Obter(int codContrato)
{
return ContratoRepositorio.Obter(codContrato);
}

REPOSITÓRIO (Onde encontra-se o entity)

public Contrato Obter(int codContrato)
{
using (DBEntities e = new DBEntities())
{
e.Configuration.ValidateOnSaveEnabled = false;
e.Configuration.LazyLoadingEnabled = false;
e.Configuration.AutoDetectChangesEnabled = false;
e.Configuration.ProxyCreationEnabled = false;

Contrato contrato = e.Contrato

       .Include(“Acesso”)
       .Include(“Advogado”)
       .Include(“ContratoEndereco”)       
       .Include(“ContratoEndereco.Cep”)
       .Include(“ContratoEndereco.Cep.Bairro”)
       .Include(“ContratoEndereco.Cep.Bairro.Cidade”)
       .Include(“ContratoEndereco.Cep.Bairro.Cidade.Estado”)
       .Include(“Situacao”)

.AsNoTracking()
.FirstOrDefault(p => p.codContrato == codContrato);

return contrato;
}
}

As classes que estão referenciadas nos includes serão carregadas dentro do objeto [Contrato], elas fazem parte da sua composição (No banco de dados são FKs), possivelmente tais classes carregadas serão utilizadas depois nos procedimentos necessários.

Quando o objeto [Contrato] for obtido na camada de apresentação ele estará fora do contexto do Entity, pois foi dado [Dispose]  no contexto quando finalizou o [Using] na Repositório.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s