这里是我的测试用例:NHibernate的:保存,删除然后保存同一实体抛出StaleStateException
[Test, Explicit]
public void SaveDeleteSaveThrowsTest()
{
Produit produit = new Produit { Libelle = "Test" };
using (ISession session = this.SessionProvider.OpenSession())
{
session.FlushMode = FlushMode.Auto;
using (ITransaction transaction = session.BeginTransaction())
{
session.SaveOrUpdate(produit);
transaction.Commit();
}
using (ITransaction transaction = session.BeginTransaction())
{
session.Delete(produit);
transaction.Commit();
}
using (ITransaction transaction = session.BeginTransaction())
{
session.SaveOrUpdate(produit);
Assert.Throws(typeof(StaleStateException), transaction.Commit);
}
}
}
的ID被希洛产生。
如果我在保存它之前将实体的Id赋值为0,它在这种简单的情况下工作,但在更复杂的情况下无法工作,我有一对多关系(我得到异常“collection所有者未与会话关联“时尝试删除父实体)。
有没有办法让它工作? (保存,再次删除保存同一实体)
你为什么要在删除后保存? – UpTheCreek 2011-01-11 10:43:31