none
Duda al actualizar datos desde la base de datos (Entity Framework) RRS feed

  • Pregunta

  • Hola a todos, tengo una duda a la hora de actualizar un objeto de la siguiente manera:

    Contexto.Refresh(RefreshMode.StoreWins, Documento.ProductosDocumento);

    Si ejecuto el método anterior, el objeto Documento actualiza la colección de ProductosDocumento, pero sólo las filas existentes, es decir, no me añade las nuevas filas que he creado por ejemplo a mano en la base de datos.

    Luego tengo otra opción que sí me sirve pero hace que la consulta sea demasiado pesada y es usar:

    Contexto.Refresh(RefreshMode.StoreWins, Contexto.ProductoDocumentos);

    Esto me actualiza la entidad ProductoDocumentos al completo, pero no me sirve ya que como digo es muy pesada la consulta.

    Para solventar el problema, haciendo pruebas observé que se si creo una consulta IQuerable y la ejecuto, ésta sí me devuelve los datos reales de la base de datos (sin usar el RefreshMode.StoreWins) y además me actualiza la colección del objeto Documento:

    IQueryable<ProductoDocumento> consultarProductosDocumentos = GestionDatos.Datos.Contexto.ProductoDocumentos.Where(pd => pd.Documento.Id == Documento.Id);
    var b = consultarProductosDocumentos.ToList().Count;
    
    

    ¿A qué se debe ésto?

    ¿Hay manera de actualizar un objeto o una colección de un objeto sin necesidad de actualizar la entidad?

    Saludos.

    Sorry Leandro, me equivoqué de foro.


    viernes, 31 de mayo de 2013 13:58