我有NHibernate和存儲庫模式一個非常基本的問題:NHibernate的倉庫模式
我有一個存儲庫(聚集),這是父母。如果我想刪除一個孩子,我是否應該有一個刪除方法來處理孩子和父母的刪除,還是應該有不同的方法?
我該如何處理刪除有孩子的父母。 任何示例代碼將不勝感激。
我有NHibernate和存儲庫模式一個非常基本的問題:NHibernate的倉庫模式
我有一個存儲庫(聚集),這是父母。如果我想刪除一個孩子,我是否應該有一個刪除方法來處理孩子和父母的刪除,還是應該有不同的方法?
我該如何處理刪除有孩子的父母。 任何示例代碼將不勝感激。
你使用hbm映射文件或流利NHibernate來設置你的映射?
如果您正在使用的映射文件,其中一個方案是設置級聯屬性,例如:
...
<bag name="Children" lazy="true" cascade="delete" >
<key column="ParentId" />
<one-to-many class="Child" />
</bag>
...
級聯=「刪除」將導致母公司刪除到它相關聯的對象被級聯。級聯可以指定爲cascade =「all | none | save-update | delete」,因此您可以指定哪些操作應該從父級級聯到關聯的對象。
注意.Cascade.All()
:
HasMany(item => item.ItemFeedbackItems)
.KeyColumn("ItemID")
.Cascade.All()
.LazyLoad()
.Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore);
感謝您的迴應,我使用FluentNhibernate的映射。 – user669803 2011-03-21 17:47:41
@ user669803我對Fluent界面不太熟悉,但是,文檔會說:「與所有其他流利映射一樣,您可以鏈接調用來自定義引用關係。例如,如果您想指定要使用的級聯策略Cascade屬性。參考(x => x.Author).Column(「AuthorId」)。Cascade.All();「 – Graham 2011-03-21 18:00:23