none
aplicación asp.net modelo de clases RRS feed

  • Pregunta

  • hola grupo 

    tengo una aplicacion asp.net y tengo el siguiente problema: en mi negocio tengo pedidos, que luego se conviverte en rendicion al agregarse mas datos. y luego liquidacion con otros datos mas. las tres actualizan una lista de objetos llamados recorridos.

    Y tengo tres tablas en la bd:  pedidos , rendicion y liquidacion

    la tabla pedidos no me interesa pero tiene muchos campos y una lista de otro objetos,

     la de rendición tiene el idpedido , mas campos que son iguales a la tabla pedidos mas un campo observacion

    la tabla liquidacion tiene  el id pedido + id recaudacion +los campos de pedidos , mas varios totales.


    el modelo  de clases :que tengo consiste en tres clases pedidos,recaudacion y liquidacion. mi duda es si recaudacion me puede quedar asi

    public class pedido
    {...
     list<recorrido> // esto no se puede clonar
    }

     public class Rendicion : 
        {
           public int Numero {get;set;}
           public Pedido PedidoRendido{get;set;}
           public string Objetivo {get;set;}
      }

    El tema es  al hacer la rendición necesito los campo de pedidos y también el  objeto pedido o su id. por eso no hice herencia, y lo puse como propiedad

    y cdo se hace rendicion el objeto pedido es otro, no cambia el pedido original. toma solo datos del original. Alguna sugerencia para recomendarme para modelar estas clases?  Estoy falto de ideas. Lo unico que se me ocurre no se si me conviene,  creo que es clonar el pedido para usar en rendicion (cleep clone no se si conv. ). El tema es que pedido tiene lista de recorrido que ese es un objeto para las tres clases.

    Gracias desde ya

    martes, 31 de diciembre de 2013 7:21

Respuestas

  • >>por mas que en rendicion al tener la propiedad pedido no modifique  el  pedido original , esto no se si queda bien

    es que seria lo correcto, si generas un vinculo entre las entidades, no tiene porque ser modificada, si es que la reglas del negocio asi lo determinan

    solo asocias las entidades y nada mas, en base a un pedido se asocia la rendicion pero es solo eso una asociacion no se duplican todas las propiedades

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta sebastian viga miércoles, 1 de enero de 2014 18:48
    martes, 31 de diciembre de 2013 18:56

Todas las respuestas

  • >>cdo se hace rendicion el objeto pedido es otro, no cambia el pedido original.

    esta parte no la entendi, entonces es otro pedido o no cambia ?

    a que llamas que toma los datos del original? porque se supone que si relacionas las entidades no deberias duplicar los datos

    porque simplemente no vinculas loas entidades mediante una relacion, entonces sabiendo que rendicion se une con que pedido tomas los datos mediante ese vinculo y no clonas ni tomas nada para volcar de una entidad a otra

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    martes, 31 de diciembre de 2013 13:34
  • Gracias leandro por responder, genio.

    perdon  lo que quise decir: que El objeto pedido es otro no el objeto pedido original , como que rendición hereda las propiedades de pedido y agrega otras mas.

    Es verdad , es como que esta mal diseñado, no lo hice , me vino asi, porque se duplica las propiedades de otro objeto y deberia usar el objeto pedido original como propiedad de rendicion .( por mas que las tablas de bd dupliquen campos). No se porque se penso que tengan las mismas propiedades de un objeto para usarlo en otro. 

     la relacion de entidades la imagine como una composicion, para hacer la  vinculacion con el objeto pedido como mencionas. y quedaria asi

    public class Rendicion : 
        {
           public int Numero {get;set;}
           public Pedido PedidoRendido{get;set;}
           public string Objetivo {get;set;}
      }

    Gracias

    martes, 31 de diciembre de 2013 16:12
  • ok pero entonces la duda cual seria ?

    digo si el diseño te vino asi que es lo que quieres cambiar ?

    como defines la relacion mediante la propiedad esta correcto, ya que relaciona la rendicion con el pedido que lo genero

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 31 de diciembre de 2013 17:38
  • Solamente quería evitar la duplicación de propiedades en la clase rendición  me gusto como comentaste bien en evitar duplicar todos los campos de pedidos en rendición. Mi idea era por un lado vincular un pedido con rendición que ahora se hace por idpedido en base datos, poniendo directamente una propiedad objeto pedido en rendición y por otro lado lograr no duplicar los datos de pedidos en rendicion, (por mas que en rendicion al tener la propiedad pedido no modifique  el  pedido original , esto no se si queda bien  )

    Gracias


    martes, 31 de diciembre de 2013 17:53
  • >>por mas que en rendicion al tener la propiedad pedido no modifique  el  pedido original , esto no se si queda bien

    es que seria lo correcto, si generas un vinculo entre las entidades, no tiene porque ser modificada, si es que la reglas del negocio asi lo determinan

    solo asocias las entidades y nada mas, en base a un pedido se asocia la rendicion pero es solo eso una asociacion no se duplican todas las propiedades

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta sebastian viga miércoles, 1 de enero de 2014 18:48
    martes, 31 de diciembre de 2013 18:56
  • Gracias leandro feliz año
    miércoles, 1 de enero de 2014 18:49