2009-07-27 48 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(); 

我不确定访问标签是否会强制对象被实例化?

相关问题