这是我的课:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public ISet<User> Friends { get; set; }
}
这是我的映射:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="Test" assembly="test">
<class name="User" table="Users">
<id name="Id" column="id">
<generator class="native"/>
</id>
<property name="Name" column="name"/>
<set name="Friends" table="Friends">
<key column="user_id"/>
<many-to-many class="User" column="friend_id"/>
</set>
</class>
</hibernate-mapping>
这是问题所在:
User user = session.Load<User>(1);
User friend = new User();
friend.Name = "new friend";
user.Friends.Add(friend);
在最后一行 [user.Friends.Add(friend)],我注意到它会在添加新朋友之前初始化 Friends 集合。
我的问题是:在 NHibernate 中是否有避免这种行为?因为出于性能原因,我只想执行单个 INSERT 命令。