none
Swap de objetos C# RRS feed

  • Pregunta

  • class A {
        p1,
        p2,
        collection<T> col1,
        collection<T> col2
    }
    
    class A_backup {
        p1,
        p2,
        collection<T> col1,
        collection<T> col2
    }
    
    class A_tmp { }

    buenas

    tengo una duda en una aplicacion mvc con EF,
    supongamos que tengo algo definido como las clases de arriba.
    Mi duda surgue segun el codigo de arriba al hacer el swap de objetos
    los pasos son 
    - pido de la BD el objeto A que tiene una numero de version 1
    - pido de la BD el objeto A_backup que tiene una numero de version 2
    - copio en A_tmp toda propiedad y colecciones de A
    - copio en A toda propiedad y colecciones de A_backup
    - copio en A_backup  toda propiedad y colecciones de A_tmp
    - actualizo en bd el objeto A  (A.saveChanges())
    - actualizo en bd el objeto A_backup (A_backup.saveChanges())

    lo habitual

    el tema es que al parecer estoy teniendo un problema de referencias o con las consultas

    el resultado me queda A con la info de A_backup, pero A_backup no tiene toda la info de A.
    (le falta la info de la coleccion col2)
    Supongo que el problema esta quedando en la clase temporal pero los metodos que replica
    todo de A -> A_tmp , A_backup -> A, A_tmp -> A_backup  son los mismos.

    de momento estoy analizando si deberia usar no tracking al traer el objeto
    https://docs.microsoft.com/es-es/ef/core/querying/tracking

    saludos


    Edgardo

    jueves, 7 de febrero de 2019 13:29