2009-07-27 47 views
0

我有有一個標籤屬性NHibernate:如何在創建包含對象後插入一個新的Set成員?

public virtual System.Collections.Generic.List<Tag> Tags { get; set; } 

其中包含標籤類對象的集合Person類。

鑑於系統設計,最初創建Person類的實例,然後在稍後用戶可以將標籤添加到Person。

作爲NHibernate的新手,我可以弄清楚如何將一個或多個標籤添加到現有的人物對象。是否需要檢索Person對象,然後添加()一個或多個新的Tag對象?列表中可能還有Tag對象。

與刪除標記集合中現有標記對象相同的問題。

感謝

+0

你想要什麼其他選項?否則,你已經回答了你自己的問題。 – Paco 2009-07-27 19:14:48

+0

我的問題是如何做這個操作,而不是是否有另一種選擇。 – ChrisP 2009-07-27 20:17:50

回答

1

如果標籤知道它屬於哪個人,你可以這樣做:

var person = session.Load<Person>(id); 
var tag = new Tag() { Person = person; /* stuff */ }; 
session.Save(tag); 

session.Flush(); 

這應該避免這樣做對人的查詢。

我也認爲你需要將標籤更改爲IList。


編輯:

感動了其他例子...我不認爲這會避免選擇查詢。

var person = session.Load<Person>(id); 
person.Tags.Add(new Tag() { /* stuff */ }; 

session.Flush(); 

我不確定訪問標籤是否會強制對象被實例化?

相關問題