2010-06-24 23 views
5

Tôi đang sử dụng ISession.SaveOrUpdate để chèn các đối tượng mới và updaet hiện có.Cách trả lại id từ NHibernate ISession.SaveOrUpdate

Nếu tôi sử dụng ISession.Save (..), điều này sẽ trả về danh tính của bản ghi được chèn.

Đối SaveOrUpdate Tôi đang làm như sau:

public int Save(Vehicle entity) { 
     using (var txn = _session.BeginTransaction()) { 
      _session.SaveOrUpdate(entity); 
      txn.Commit(); 
     } 
     return entity.Id; 
    } 

Đây có phải là cách tốt nhất để trở lại danh tính của tôi?

Cảm ơn,

Bến

+0

Tôi nghĩ đây là cách tốt để làm điều này, và có lẽ tôi đã tự làm. – simendsjo

Trả lời

7

Không có gì sai với điều đó. Nhưng vì danh tính được đặt trên đối tượng, tại sao không làm cho phương thức trả về void:

public void Save(Vehicle entity) { 
    using (var txn = _session.BeginTransaction()) { 
     _session.SaveOrUpdate(entity); 
     txn.Commit(); 
    } 
} 
+0

tuyệt vời, cảm ơn bạn đã làm rõ –

+0

NẾU phương pháp là một phần của kho lưu trữ hoặc dao bạn có thể thấy nó thuận tiện (nhưng không cần thiết) để trả lại thực thể; Sharp Arch, cho một, thực hiện điều này. – Berryl

Các vấn đề liên quan