簡體   English   中英

NHibernate Cascade =保存更新“?

[英]NHibernate Cascade=save-update"?

免責聲明:我是一名NHibernate noobie,所以希望這個問題有道理。 我有兩個類之間的多對多關系,比如......

public class Entity1
{
    public virtual Guid EntityId { get; set; }
    public virtual IList<Entity2> Entity2List;
} 

Public class Entity2
{
    public virtual Guid EntityId { get; set; }
    public virtual IList<Entity1> Entity1List;
}

我在兩個類映射中都添加了一個多對多關系,定義了一個關聯表但不確定要使用哪個級聯選項。 我希望能夠創建一個新的Entity1實例,將新的Entity2實例添加到它的列表中,調用Save,並將兩者都插入到數據庫中(反之亦然)。 刪除實體時,它應刪除與子實體的任何關聯,但不刪除子實體本身。 我應該使用cascade =“save-update”嗎?

是。 在這種情況下,聽起來像你想要的“保存更新”。

我從未在文檔中找到關於每個級聯選項的很好的解釋,但是已經使用Ayende的這篇文作為參考。

  • none - 不做任何級聯,讓用戶自己處理它們。
  • save-update - 保存/更新對象時,檢查關聯並保存/更新任何需要它的對象(包括在多對多方案中保存/更新關聯)。
  • delete - 刪除對象時,刪除關聯中的所有對象。
  • delete-orphan - 刪除對象時,刪除關聯中的所有對象。 除此之外,當從關聯中刪除對象而不與另一個對象(孤立對象)關聯時,也刪除它。
  • all - 當對象保存/更新/刪除時,檢查關聯並保存/更新/刪除找到的所有對象。
  • all-delete-orphan - 當一個對象被保存/更新/刪除時,檢查關聯並保存/更新/刪除找到的所有對象。 除此之外,當從關聯中刪除對象而不與另一個對象(孤立對象)關聯時,也刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM