我想實現一個只使用主鍵來刪除實體的存儲庫方法,主要是因爲從一個webapp我通常只在調用「刪除請求」時知道主鍵一個網頁。只能通過主鍵刪除NHibernate中的實體
由於ORM,今天的選項是從數據庫中獲取實體,然後刪除它,這給了我一個額外的往返。
我可以使用HQL刪除,但因爲我想爲所有實體創建一個通用的刪除方法,除非我使用反射來找出哪個字段是主鍵(可以,但不能感覺正確)。
或者它是否需要實體才能正確處理級聯的NHibernate性質?
我試過這種方法,假設它不會加載實體,除非明確需要,但是還沒有時間來測試它。也許有人可以闡明如何處理這個問題?
var entity = session.Load<T>(primaryKey);
session.Delete(entity);
編輯:現在已經測試過它,它似乎還沒有完全選擇刪除前的實體。
可能重複[如何刪除對象通過在nhibernate中使用PK?](http://stackoverflow.com/questions/3063777/how-to-delete-an-object-by-using-pk-in-nhibernate) – 2010-10-07 14:26:06