這裏是我的測試用例: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