我正在使用带有NHibernate的ASP.NET MVC
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:{“国家实例的标识符从1改为2”}}
我能做什么?
答案 0 :(得分:1)
错误:
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();