Ajuda com Entity Framework

19/05/2014

0

Boa noite.
Estou desenvolvendo uma aplicacao windows form, e resolvi utilizar o EF.

Em determinado momento me deparei com algumas situações em que não sei se estou fazendo uso correto deste framework. Se possivel gostaria de sua ajuda quanto a umas dúvidas abaixo.

1º Estou desenvolvendo minha aplicacão dentro de um Windows Application, la eu separei em namespace os seguintes recursos no sistema
>Modelo (Classe para mapear o banco)
>Dal (Classe que contem os métodos para persistir as informações no banco)
>Formulario (as forms do sistema)

É correto separar assim os objetos dentro de um sistema?

2º Eu vi que o EF possui um recurso muito interessante que é o LazyLoad, mas como estou iniciando com o EF, não sei se é muito viavel utiliza-lo, pois este recurso depende do EF estar com a conexão aberta, e como eu vi que qualquer alteração no objeto quando o mesmo esta vinculado a um EF reflete diretamente no banco, e se eu não tomar cuidado posso acabar alterando ou excluindo registros do banco por acidente.
Para evitar isso, estou utilizando o EF desta maneira, quero saber a opinião se esta correto o uso ou estou perdendo algum recurso da ferramenta,
ex:

public List<Fornecedor> ObterLista(Fornecedor fornecedor)
{
using (FastSnackContext context = new FastSnackContext())
{
var fornecedores = new List<Fornecedor>();

if (fornecedor.FornecedorId > 0)
{

}
else if (!string.IsNullOrEmpty(fornecedor.RazaoSocial))
{
fornecedores = (from f in context.Fornecedores
where (f.RazaoSocial.Contains(fornecedor.RazaoSocial))
orderby f.RazaoSocial ascending
select f).ToList();
}
else
{
fornecedores = (from f in context.Fornecedores
orderby f.RazaoSocial
select f).ToList();
}

return fornecedores;
}
}


public void Adicionar(Fornecedor fornecedor)
{
try
{
using (FastSnackContext context = new FastSnackContext())
{
context.Fornecedores.Add(fornecedor);
context.SaveChanges();
}
}
catch (Exception)
{
MessageBox.Show("Erro ao incluir novo Fornecedor");
}
}

public bool Alterar(Fornecedor fornecedor)
{
try
{
using (FastSnackContext context = new FastSnackContext())
{
context.Fornecedores.Attach(fornecedor);
context.Entry(fornecedor).State = EntityState.Modified;
context.SaveChanges();
return true;
}

}
catch (Exception e)
{
MessageBox.Show("Erro ao atualizar o fornecedor!\nDetalhes do erro: " + e.Message);
return false;
}
}

3ª Gostaria de um exemplo se possivel de uma classe Venda, se a lista de ItensVendido faz parte da classe como um List<ItenVendido>.

Desde já agradeço. Qualquer ajuda ou comentário é bem vindo.
William Maximo

William Maximo

Responder

Posts

21/05/2014

Joel Rodrigues

Opa, tudo em paz?
Sobre a primeira questão, essa é uma divisão muito comum. Geralmente o pessoal usa DAL+BLL+VIEW ou DAL+DTO+VIEW, ou seja, ACESSO A DADOS + MODELOS + INTERFACE.
Na revista Easy .NET Magazine 31 tivemos um artigo interessante sobre isso: [url:descricao=Aplicações multicamadas em .NET]https://www.devmedia.com.br/aplicacoes-multicamadas-em-net-parte-1/28685[/url]
Responder

21/05/2014

Joel Rodrigues

Sobre a segunda dúvida, não há problema no seu código. Você está utilizando os métodos corretamente, então não peque por Excesso de Engenharia e se preocupe com coisas que não são fundamentais ainda.
Responder

21/05/2014

Joel Rodrigues

Sobre a terceira questão, o EF já mapeias as tabelas do banco considerando os relacionamentos. Experimente mapear duas tabelas que estejam relacionadas entre si. Automaticamente será criada uma lista de objetos X na classe Y (considerando que o relacionamento de 1 Y para N X).
Responder

22/05/2014

William Maximo

Sobre a terceira questão, o EF já mapeias as tabelas do banco considerando os relacionamentos. Experimente mapear duas tabelas que estejam relacionadas entre si. Automaticamente será criada uma lista de objetos X na classe Y (considerando que o relacionamento de 1 Y para N X).


Obrigado pelo retorno quanto as 3 questões.
Estou lendo a revista que voce indicou.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar