Ajuda com Entity Framework
19/05/2014
0
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
Posts
21/05/2014
Joel Rodrigues
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]
21/05/2014
Joel Rodrigues
21/05/2014
Joel Rodrigues
22/05/2014
William Maximo
Obrigado pelo retorno quanto as 3 questões.
Estou lendo a revista que voce indicou.
Clique aqui para fazer login e interagir na Comunidade :)