我們在服務器端使用NHibernate作爲我們的ORM。如何在NHibernate中有效地使用ID刪除對象?
有時,需要從數據庫中刪除一個對象,只給出該對象的類型和ID。另外,被刪除的對象之前沒有被提取(所以它不在會話緩存中或其他)。
無論如何,我正在使用ISession.Delete(query)
過載,其中查詢與from Dummy where Id=5
一樣普通。
我的問題是爲什麼NHibernate刪除它之前獲取對象?據我所知,我付出了雙倍往返服務器的手術費用,直觀上應該只需一次往返。
有沒有辦法通過NHibernate的類型和ID從數據庫中刪除一個對象,這樣只需要一次往返?
是的,我的猜測是刪除函數必須以觸發加載的方式訪問代理。 – dotjoe 2010-02-23 22:19:11
和懶加載? – 2010-02-23 22:44:22
我至少可以確認,如果延遲加載關閉,Load仍然首先執行SELECT。我還沒有試圖打開延遲加載類,但看看是否有幫助... – 2011-01-05 22:05:34