Subsónico y automóvil - La colección DirtyColumns está vacía, por lo que no se puede actualizar

StackOverflow https://stackoverflow.com/questions/5491733

Pregunta

Estoy usando subsónicos 3 y automáticamente en un proyecto ASP.NET MVC3.

En mi Httppost ActionResult, estoy tomando mi modelo y mapeando a mi entidad subsónica generada.

El mapeo no funciona con problemas, pero no puedo actualizar la entidad.

Tras una inspección adicional, es porque no tengo columnas sucias, por lo tanto, mi llamada a actualizar () falla, ya que la subsónica no cree que necesita actualizar nada.

He reencamentado las cargas de código, incluso forzando el método para cargar la entidad de la DB nuevamente antes de asignar el modelo contra el modelo. Simplemente parece que el mapeo destruye el seguimiento de sucursales. P.ej. Si mapeo después de cargar desde el DB, y luego cambiar una propiedad aleatoria, no se marca como una columna sucia.

También he intentado usar la llamada de método Setisced (True). Ninguna alegría después del mapeo.

Aquí está mi método:

    [HttpPost]
    public virtual ActionResult Edit(SinglePersonModel model)
    {
        if (ModelState.IsValid)
        {
            Data.Person person;

            //Now Map my model to my entity - this works
            Mapper.CreateMap<SinglePersonModel, Data.Person>();
            person = Mapper.Map<SinglePersonModel, Data.Person>(model);

            //THIS DOESN'T SET MY COLUMN TO DIRTY
            person.Link = "asdjsadij";

            //THIS DOESN'T SET MY COLUMN TO DIRTY EITHER
            person.SetIsLoaded(true);
            person.Link = "asdjsadij";

            if (person.PersonId > 0)
                PersonRepository.UpdatePerson(person);
            else
                PersonRepository.CreatePerson(person);

            return RedirectToAction(MVC.SecureAdministration.Person.Index());
        }
        else return View(model);
    }

Los métodos estáticos en mi persona, solo llaman a la actualización () y guardar () respectivamente.

cualquier idea sería muy apreciada. Ahora estoy pensando que es posible que necesite poner algunas propiedades adicionales en mi modelo para asegurarme de que se lleven a la entidad por el automóvil.

En el peor de los casos, tendré que no usar el automóvil cuando se muelve a entidades del modelo, lo que apestaría.

¿Fue útil?

Solución

AutoMapper.Mapper.Map<SinglePersonModel, Data.Person>(model, person); - Have you tried it like this? This doesn't assign a new instance of the object but assigns it to the existing object. Just a thought. I understand the want of not loading it from the db. But figured this might help a bit :)

Thanks for that - glad to help out :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top