我正在更新表单中的实体,为简单起见,我们称之为CompanyCar。我的目标是检查并查看其分配的所有者是否已更改,如果是,请向新老所有者发送电子邮件。
public Car SaveExistingCar(Car car)
{
var original = _CarRepository.LoadCarById(Car.Id);
var carReturn = _CarRepository.SaveOrUpdateCar(Car) //Error here
//pseudo: if carReturn.Owner != original.Owner
// Send Email
return carReturn;
}
不幸的是,它对此非常愤怒。
a different object with the same identifier value was already associated with the session
我能理解这是怎么发生的......当然,好吧它对真实物体感到困惑。但是,这并没有帮助我解决它。我能做些什么来告诉它'原创'是假的吗?
答案 0 :(得分:2)
ISession.Evict
会从会话和第一级缓存中移除原车,您应该可以保存新车。