none
Inclusão de dados em uma tabela, onde tem Relacionamentos um-para-muitos RRS feed

  • Pergunta

  • Boa noite pessoal,

    sou novo em asp.net mvc3,

    estou com dificuldades em fazer alguns procedimentos,  que envolva relacionamentos entre tabelas de um para muitos.

    Segue o problema:

    Tenho uma Tabela Pedido e uma PedidoProduto.

    Minha Model.Pedido

      <Table("Pedido")>
        Public Class Pedido
    
            <Key()>
            Public Property IDPedido As Integer
            Public Property IDFuncionario As Integer
            Public Property IDCliente As Integer
            Public Property DataPedido As Date
            Public Overridable Property Clientes As Models.Cliente
            Public Overridable Property Funcionarios As Models.Funcionario
            <NotMapped()>
            Public Overridable Property PedidoProdutos() As ICollection(Of PedidoProduto)
    
        End Class


    Minha Model PedidoProduto:

     <Table("PedidoProduto")>
        Public Class PedidoProduto
    
            <Key()>
            Public Property IDPedidoProduto As Integer
            Public Property IDPedido As Integer
            Public Property IDProduto As Long
            <Column(TypeName:="money")>
            Public Property ValorUnitario As Decimal
    
            <Required(ErrorMessage:="Valor da Quantidade e Obrigatório.")> _
            Public Property Quantidade As Decimal
            <Column(TypeName:="money")>
            Public Property ValorTotal As Decimal
            <ForeignKey("IDPedido")>
            Public Overridable Property Pedidos As Models.Pedido
            <ForeignKey("IDProduto")>
            Public Overridable Property Produtos As Models.Produto
    End Class

    Logo abaixo uma View que montei em asp.net mvc3,já com dados incluidos direto pelo banco,

    para vcs visualizarem melhor o meu problema

    Descrevendo a imagem acima:

    Na parte de cima em tenho os dados do pedido, onde vai informar um cliente, um funcionário, e a data do pedido,

    na parte de baixo tenho os dados do pedidoproduto, onde vai ser escolhido o produto,, informado o valor unitário a quantidade para ter o valortotal

    e ao pressionar a opção Incluir, terá que lançar na WebGrid Abaixo, onde poderá Incluir quantos pedidoproduto desejar,

    Ao pressionar o menu Salvar, teria que salvar os dados do pedido, e depois os dados do pedidoproduto, mas não sei como fazer isto.

    Tive algumas idéias, por exemplo criar uma propriedade na model.pedido do tipo ICollection(Of PedidoProduto), e ir incluído as informações

    ao precionar o Incluir, guardando as informações na lista e carregando a Webgrid, e ao salvar o pedido, salvar a lista de Pedidoproduto,

    mas não sei como fazer isto.

    Se tiverem idéias, ou exemplos em cima do contexto acima,

    eu agradeço.

    Abraço.


    Oliveira


    sexta-feira, 3 de agosto de 2012 23:49

Respostas

  • Márcio na Tabela PedidoProduto vc irá inserir o ID do Pedido e do Produto.

    Vamos supor que vc tem 1 Pedido e 3 Produtos, sua tabela ficará assim:

    IdPedido ----- IdProduto

    1                          15

    1                          29

    1                          7

    Seu método para salvar isso será mais ou menos assim em C#:

    public bool SalvarPedido(PedidoModel, List<ListaProdutos> lista)

    {

    // Após dá um InsertOnSubmit na Entidade de Pedido vc terá um Id, correto?

    //Vc pega esse Id de Pedido para ser usado no InsertOnSubmit na lista de Pedidos.

    }

    Para recupera os produtos do Pedido, basta uma simples consulta na tabela de PedidoProduto

    passando como parâmetro o Id do Pedido.


    Júnior Pacheco

    terça-feira, 7 de agosto de 2012 18:14