none
Repositorios, dudas con entidades relacionadas RRS feed

  • Pregunta

  • Hola,

    Tengo algunas dudas en la implementación del patrón, a ver si alguien me puede ayudar a ver mas claro como montar el tema.

    supongamos una estructura asi:

        class Hijo
        {
            public int Id {get;set;}
            public string nombre { get; set; }
        }
        class Padre
        {
            public int Id {get;set;}
            public string nombre { get; set; }
            public virtual Hijo Hijo { get; set; }
        }

    y en mi repositorio hago la siguiente llamada

    var padre=repositorio.GetFirstPadre();


    esto me devuelve un padre con un hijo asociado.

    EF autodetecta los cambios que yo hago sobre las entidades por lo tanto si yo hago

    padre.Hijo.nombre="PEPE";
    repositorio.Update(padre);


    se actualizaran los datos del hijo.

    Debo desconectar que me detecte cambios?  tengo que hacer un repositorio para cada entidad aunque esa entidad solo sea modificable desde la entidad padre?

    He estado mirando también las explicaciones del compañero Leandro Tuttini, el desconecta totalmente el repositorio de la persistencia en cada acción, no se hasta que punto es valido puesto que si tienes que ejecutar cambio de varias entidades en una única transacción no se podría ¿no? 

    A ver si alguien me puede ayudar, que ando un poco perdido y en breve tengo que empezar proyecto y tengo que tomar decisiones.

    Gracias.

    PD. entiendo el funcionamiento y la finalidad del patron(o eso creo), lo que no veo es como debería funcionar correctamente con entity framework.



    jueves, 27 de agosto de 2015 13:01

Respuestas

  • hola

    >>Debo desconectar que me detecte cambios?

    te refieres a desconectar la entidad del model

    >>tengo que hacer un repositorio para cada entidad aunque esa entidad solo sea modificable desde la entidad padre?

    no necesariamente, pero si quieres realizar operaciones sobre entidades hijas sin tener que depender de la padre seguramente en el mismo repositorio de la entidad padre debas definir metodos donde solo pases por parametro al entidad hija

    o sea usas el mismo repositorio pero expones funcionalidad para trabjar la entidad padre y la hija

    >>el desconecta totalmente el repositorio de la persistencia en cada acción, no se hasta que punto es valido puesto que si tienes que ejecutar cambio de varias entidades en una única transacción no se podría ¿no?

    cuando recuperas entidades estas al salir del repositorio esta claro que estan desconectadas ya que sales del contexto de EF, aunque no quieras se desconectan igual

    ahora si tienes que realizar varias operaciones quizas debas evaluar implementar UoW (Unit of Work), con este podrias enviar varias operaciones

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 27 de agosto de 2015 13:57