0
我有一个问题,当我锁定一个对象反序列化。NHibernate的 - 锁反序列化的对象
例如为:
var session = sessionFactory.OpenSession();
var item = session.QueryOver<T>().Where(x => x.Id = "1").FutureValue().Value;
var serializedObject = Serializer.Serialize(item);
//do something with the serialized object
//...
var deserializedObject = Deserializer.Deserialze(serializedObject);
//lock record
session.Lock(deserializedObject, lockMode);
错误:
a different with the same identifier value was already associated with the session...
但在的SessionID从打开的会话的错误IST相同的SessionID。
如果我锁定原来的“项目”,那么它的作品。
现在是我的问题我该如何与序列化/反序列化交互?
预先感谢UND最诚挚的问候
NHibernate跟踪你的T的一个实例...你试图使用T的另一个实例('Deserialize'返回的那个实例)。你必须'session.Merge'反序列化的对象(并注意'session.Merge'返回另一个对象!附加到'session'的对象)。 – xanatos
你好xanatos,请你解释一下。现在我尝试session.Merge(deserializedObject);但错误是一样的:( –
'deserializedObject = session.Merge(deserializedObject)' – xanatos