2012-11-15 88 views
0

NHibernate中通過id刪除一個對象的最佳做法是什麼?你既可以做NHibernate刪除最佳實踐

public void Delete(int id) 
{ 
    Session.Delete(new MyEntity { Id = id }); 
} 

或者你可以做

public void Delete(int id) 
{ 
    var entity = Session.Get<MyEntity>(id); 
    Session.Delete(entity); 
} 

第二種選擇更清潔的感覺對我來說,因爲你沒有撰寫新的對象只是刪除,但在另一方面,你」將執行兩條SQL命令,而不是一條。

+0

可能重複的[如何通過在nhibernate中使用PK來刪除對象?](http://stackoverflow.com/questions/3063777/how-to-delete-an-object-by-using-pk-in- NHibernate的) –

回答

2

第二種選擇是最佳實踐。 NHibernate需要在刪除它之前加載對象,以便級聯刪除通過對象圖。我寧願做一個直接的SQL刪除,而不是像第一個選項那樣創建一個僞造對象來欺騙NHibernate。