none
Entity Framework 4 - Arquitetura Correta RRS feed

  • Pergunta

  • Bom dia,

    estou desenvolvendo um sistema em EF4 e estou tentando aplicar o conceito de N camadas, para deixar o sistema flexivel.

    Bom, ate agora o que eu tenho é: CAMADA VIEW, CAMADA ENTITIES (classes entidades), CAMADA BC (Camada de negocios que chama o contexto), CAMADA CONTEXTO(onde tenho meu .edmx e meu contexto).

    Gostaria muito de saber se esta arquitetura esta correta, pois estou tendo algumas dificuldades, alem do mais, toda e qualquer referencia que pego de EF4, a chamada do contexto é feita através do evento do botão, sem nenhuma camada de tratamento entre elas.

    para exemplificar, segue um exemplo:

     

    CAMADA VIEW

     protected void btnSalvar_Click(object sender, EventArgs e)
        {
          PlanoPagamento obj = new PlanoPagamento();
          obj.Id = Convert.ToInt32(hfId.Value);
          obj.Descricao = txtDescricao.Text;
          obj.Parcelas = Convert.ToInt32(txtParcelas.Text);
          obj.Status = ddlStatus.SelectedValue;
          try
          {
            objBC.Salvar(obj);
            Bind();
            pnResponse.CssClass = "box-success closeable";
            lblResponse.Text = "Dados alterados com sucesso !";
          }
          catch (Exception ex)
          {
            pnResponse.CssClass = "box-error closeable";
            lblResponse.Text = "Erro: " + ex.Message;
          }
          pnResponse.Visible = true;
        }
    
    CAMADA BC

     public void Salvar(PlanoPagamento entidade)
        {
          Model.DentalWebContainer ctx = new Model.DentalWebContainer();
          try
          {
            if (entidade.Id == 0)
            {
              ctx.PlanosPagamento.AddObject(entidade);
            }
            else
            {
              ctx.PlanosPagamento.Attach(entidade);
              ctx.ObjectStateManager.ChangeObjectState(entidade, EntityState.Modified);
    
            }
            ctx.SaveChanges();
          }
          catch (Exception ex)
          {
    
            throw ex;
          }
        }<br/>
    
    

    Model.DentalWebContainer É UMA CAMADA E A CLASSE PlanoPagamento FICA EM OUTRA CAMADA DIFERENTE.<br/>
    <br/>
    <br/>
    GOSTARIA DE SABER SE ESTE É O JEITO CORRETO !!!!!<br/>
    <br/>
    GRATO<br/>
    
    

    Matheus Reis MCP - .Net Framework
    sexta-feira, 4 de março de 2011 13:21

Todas as Respostas