Я использую Subsonic 3 и Automapper в проекте asp.net MVC3.
В моем HttpPost ActionResult я беру свою модель и сопоставляю ее с моей сгенерированной Subsonic сущностью.
Отображение не работает, но я не могу обновить сущность.
При дальнейшей проверке это происходит потому, что у меня нет грязных столбцов, поэтому мой вызов Update () завершается неудачно, так как Subsonic не считает, что ему нужно что-либо обновлять.
Я переназначил загрузку кода - даже заставляя метод снова загружать сущность из БД перед сопоставлением с моделью. Просто кажется, что отображение разрушает отслеживание dirtyColumns. Например. если я сопоставлю после загрузки из БД и затем изменю случайное свойство, оно не будет помечено как грязный столбец.
Я также пытался использовать вызов метода SetIsLoaded (true). Нет радости после картирования.
Вот мой метод:
[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);
}
Статические методы в моем PersonRepository просто вызывают subsonic Update () и Save () соответственно.
Любые идеи будут высоко оценены. Теперь я думаю, что мне может понадобиться добавить некоторые дополнительные свойства в мою модель, чтобы они могли быть перенесены в сущность автоматом.
В худшем случае мне придется просто не использовать Automapper при отображении обратно на сущности из модели, что будет отстой.