目前,我有以下(簡化)類/ DB模式:功能NHibernate副本
Entity Prospect Customer
+- Id +- Id +- Id
+- Address +- Entity +- Entity
+- Name +- ... +- ...
+- ...
ENTITY PROSPECT CUSTOMER
====== ========== ========
ID - INT PK ID - INT PK ID - INT PK
ADDRESS - VARCHAR ENTITY_ID - INT FK ENTITY_ID - INT FK
NAME - VARCHAR ...
...
隨着以下流利的映射:
PROSPECT_MAP:
Table("PROSPECT");
Id(x => x.Id).GeneratedBy.Increment();
References(x => x.Entity).Cascade.All().Fetch.Join().Column("ENTITY_ID");
...
CUSTOMER_MAP:
Table("CUSTOMER");
Id(x => x.Id).GeneratedBy.Increment();
References(x => x.Entity).Cascade.All().Fetch.Join().Column("ENTITY_ID");
...
現在也有一堆附加到實體的東西(使用entity_id作爲FK)。在我的申請中,潛在客戶可以成爲客戶。
因此,我想創建一個新的客戶,將其鏈接到前期客戶使用的entity_id(以便與該實體相關的所有信息現在屬於客戶),然後從數據庫中刪除客戶(所以基本上只是刪除潛在客戶表中的條目,而不是級聯到它現在由新創建的客戶鏈接的子組件)
這對NHibernate來說可能嗎?請注意,我需要我的ProspectMap中的cascade.all作爲刪除潛在客戶及其組件應該仍然是應用程序中的一個選項。
非常感謝。
對於我所瞭解的你正試圖刪除一個沒有級聯刪除**實體**的**展望**,對吧?也許[IStatelessSession](http://stackoverflow.com/questions/6040966/nhibernate-disable-all-delete-orphan)是你在找什麼。 –
我會看看那個謝謝 – karlipoppins