UpdateModel + NHibernateException "идентификатор экземпляра xxx был изменен с x на y" - PullRequest
1 голос
/ 14 июня 2011

Я использую ASP.NET MVC с NHibernate

public class User
{
    public virtual int Id { get; set; }

    public virtual string Name { get; set; }

    public virtual Country Country  { get; set; }
}

public class Country
{
    public virtual int Id { get; set; }

    public virtual string Name { get; set; }
}

У меня есть страница для редактирования пользователя, есть выпадающий список для выбора страны

Я использую UpdateModel () для обновления пользователя. Он отлично работает для User.Name. Он обновляет User.Country.Id, но не User.Country.Name (потому что страница отправляет только Country.Id). Поэтому я использую это: User.Country = countryDao.Get (User.Country.Id) но когда я сохраняю пользователя, у меня появляется NHibernateException: {"идентификатор экземпляра Country был изменен с 1 на 2"}

Что я мог сделать?

1 Ответ

1 голос
/ 10 октября 2011

Ошибка:

        var db = new BaseServices<Supplier>();
        Supplier item = db.Get(model.SupplierID);

        **TryUpdateModel(item);
        item.Locality = new BaseServices<Locality>().Get(model.Locality.LocalityID);**           
        db.Update(item);
        db.SaveChange();

Шлюз:

        var db = new BaseServices<Supplier>();
        Supplier item = db.Get(model.SupplierID);

        item.Locality = new BaseServices<Locality>().Get(model.Locality.LocalityID);
        TryUpdateModel(item);
        db.Update(item);
        db.SaveChange();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...