所以我有一個父對象稱爲順序和子級對象集合稱爲orderLineItems Cascade設置爲在nHibernate中的所有刪除孤兒。這是我的代碼。所有刪除孤兒爲Nhibernate
using(var session = _sessionManager.GetSession())
using (var transaction = session.BeginTransaction())
{
var order = _repository.GetOrderEagerlyByOrderId(session, fromDb.Id);
var now = DateTime.Now;
const string user = "GNB\\Username";
var future = now.AddYears(1);
var taxType = new TaxType(0, "Code", "AlternateNameE", "AlternateNameF", "NameE", "NameF", "DescriptionE", "DescriptionF", 13, now, future, user, now, user, now);
var _serviceCatRep = new ServiceCatalogueRepository();
var serviceCatalogueItem = _serviceCatRep.GetServiceCatalogueItemByCode(session, "VR-PASS");
var orderLineItem1 = new OrderLineItem(0, null, "DescriptionE", "DescriptionF", 1, 10, null, null, 5, false, serviceCatalogueItem, null, user, now, user, future);
order.OrderLineItems.Clear();
order.OrderLineItems = order.OrderLineItems == null ? new List<IOrderLineItem> { orderLineItem1 } : new List<IOrderLineItem>(order.OrderLineItems) { orderLineItem1 };
_repository.SaveOrUpdate(session, order);
transaction.Commit();
}
它無法在transaction.Commit();
出現錯誤:
NHibernate.HibernateException : A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
此外,什麼都之間的差異全刪除,孤兒用一個例子。
您是否嘗試過'級聯=「全」'? – mattytommo
這有效,但我真的需要它全部刪除孤兒 – joncodo